在 bash 脚本中设置变量并在 Azure Pipelines 中的表达式中访问
Set variable in bash script and access in expression in Azure Pipelines
我正在使用 azure-pipelines.yml
脚本来控制我的构建管道。
在一个任务中,我定义了一个 bash 脚本来设置证书路径的一些变量,具体取决于我们是为生产还是其他任何目的而构建:
steps:
- bash: |
echo "Building for $BUILD_SOURCEBRANCHNAME"
if [ "$BUILD_SOURCEBRANCHNAME" = "production" ]; then
echo "##vso[task.setvariable variable=configuration]Release"
echo "##vso[task.setvariable variable=certificatesPath]${{ parameters.productionCertificatesPath }}"
else
echo "##vso[task.setvariable variable=configuration]Staging"
echo "##vso[task.setvariable variable=certificatesPath]${{ parameters.stagingCertificatesPath }}"
fi
name: environmentVars
我如何才能在同一作业的后续构建步骤中访问表达式中的这些变量?我知道我可以像 $(environmentVars.configuration)
和 $(environmentVars.certificatesPath)
一样访问它们,但这种语法不适用于表达式。这是我尝试访问变量的地方:
signingProvisioningProfileFile: ${{ format('{0}/app.mobileprovision', <ACCESS VARIABLE HERE>) }}
我对此的解决方案是将我想要的常量烘焙到变量的初始设置中,而不是稍后尝试对其进行格式化。例如:
echo "##vso[task.setvariable variable=certificatesPath]${{ parameters.productionCertificatesPath }}/app.mobileprovision"
我正在使用 azure-pipelines.yml
脚本来控制我的构建管道。
在一个任务中,我定义了一个 bash 脚本来设置证书路径的一些变量,具体取决于我们是为生产还是其他任何目的而构建:
steps:
- bash: |
echo "Building for $BUILD_SOURCEBRANCHNAME"
if [ "$BUILD_SOURCEBRANCHNAME" = "production" ]; then
echo "##vso[task.setvariable variable=configuration]Release"
echo "##vso[task.setvariable variable=certificatesPath]${{ parameters.productionCertificatesPath }}"
else
echo "##vso[task.setvariable variable=configuration]Staging"
echo "##vso[task.setvariable variable=certificatesPath]${{ parameters.stagingCertificatesPath }}"
fi
name: environmentVars
我如何才能在同一作业的后续构建步骤中访问表达式中的这些变量?我知道我可以像 $(environmentVars.configuration)
和 $(environmentVars.certificatesPath)
一样访问它们,但这种语法不适用于表达式。这是我尝试访问变量的地方:
signingProvisioningProfileFile: ${{ format('{0}/app.mobileprovision', <ACCESS VARIABLE HERE>) }}
我对此的解决方案是将我想要的常量烘焙到变量的初始设置中,而不是稍后尝试对其进行格式化。例如:
echo "##vso[task.setvariable variable=certificatesPath]${{ parameters.productionCertificatesPath }}/app.mobileprovision"