在 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"