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