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.
Post History
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 ...
#2: Post edited
- 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:
- ![Image DEPLOY_ENVIRONMENT config param](https://software.codidact.com/uploads/cp1lwli4r0xbj68s06iwasxplulg)
- I added a Script argument in TC's Build Step area:
- ![Image Script argument expansion](https://software.codidact.com/uploads/2h6pgmbb3ljg1n28f2xt4ks1srbo)
- When I run the deployment config manually, I can select the value for the variable from the list I created:
- ![Image Manual build configuration parameter](https://software.codidact.com/uploads/h454ckeaqtlpkk9bk2033k8ocznw)
- and the deploy config output shows this:
- ![Image command line output](https://software.codidact.com/uploads/shaiuf4tkbe4jrwlsn0zi8aevxcr)
- 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?
- 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:
- ![Image DEPLOY_ENVIRONMENT config param](https://software.codidact.com/uploads/cp1lwli4r0xbj68s06iwasxplulg)
- I added a Script argument in TC's Build Step area:
- ![Image Script argument expansion](https://software.codidact.com/uploads/2h6pgmbb3ljg1n28f2xt4ks1srbo)
- When I run the deployment config manually, I can select the value for the variable from the list I created:
- ![Image Manual build configuration parameter](https://software.codidact.com/uploads/h454ckeaqtlpkk9bk2033k8ocznw)
- and the deploy config output shows this:
- ![Image command line output](https://software.codidact.com/uploads/shaiuf4tkbe4jrwlsn0zi8aevxcr)
- 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: Initial revision
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: ![Image DEPLOY_ENVIRONMENT config param](https://software.codidact.com/uploads/cp1lwli4r0xbj68s06iwasxplulg) I added a Script argument in TC's Build Step area: ![Image Script argument expansion](https://software.codidact.com/uploads/2h6pgmbb3ljg1n28f2xt4ks1srbo) When I run the deployment config manually, I can select the value for the variable from the list I created: ![Image Manual build configuration parameter](https://software.codidact.com/uploads/h454ckeaqtlpkk9bk2033k8ocznw) and the deploy config output shows this: ![Image command line output](https://software.codidact.com/uploads/shaiuf4tkbe4jrwlsn0zi8aevxcr) 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?