Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
TeamCity build variables
I want to pass a variable to TeamCity (on prem) to choose between deployment environments (there are 14 of 'em - don't ask) when running a TC deployment configuration build which uses a PowerShell script.
I have created a Configuration Parameter in TC's 'Parameters' area:
I added a Script argument in TC's Build Step area:
When I run the deployment config manually, I can select the value for the variable from the list I created: and the deploy config output shows this:
The script shown in the above screenshot (Production.depconfig.ps1) calls functions in another script (tasks/deploy.ps1) and these functions will all use the provided environment value.
Unfortunately, I do not know how to access this variable in the Production.depconfig.ps1 script so I can pass its value to the task/deploy.ps1 script.
I have tried the following (results after the colon):
$environment : blank
$(environment) : 'The term 'environment' is not recognized as the name of a cmdlet, function, script file, or operable program. (etc)'
${environment} : blank
%environment% : %environment%
$environment : blank
What do I need to do to use the provided 'environment' value within my PowerShell script?
1 answer
I have created a Configuration Parameter in TC's 'Parameters' area:
That can work, but from the rest of the question I think that what you actually want to do here is create an Environment Variable. The Parameters area has three sections: Configuration Parameters, System Properties, Environment Variables. Try using the latter.
Alternatively, taking a more literal interpretation of the question, PowerShell /?
lists the supported flags as
PowerShell[.exe] [-PSConsoleFile <file> | -Version <version>] [-NoLogo] [-NoExit] [-Sta] [-Mta] [-NoProfile] [-NonInteractive] [-InputFormat {Text | XML}] [-OutputFormat {Text | XML}] [-WindowStyle <style>] [-EncodedCommand <Base64EncodedCommand>] [-ConfigurationName <string>] [-File <filePath> <args>] [-ExecutionPolicy <ExecutionPolicy>] [-Command { - | <script-block> [-args <arg-array>] | <string> [<CommandParameters>] } ]
Maybe you have a different version to me, but I don't see a -environment:<var>
flag. You'd probably have to compose something with -Command
and a set
command.
0 comment threads