将 bash 命令输出设置为 azure yml 变量

And*_*dre 5 yaml azure-devops azure-pipelines

我正在使用 Azure DevOps,我需要将 bash 命令的返回设置为一些变量,例如我有以下内容:

    variables:
      VERSION: 7.2 # works fine
      FILE_VERSION: ${{cat public/VERSION}} # syntax error
Run Code Online (Sandbox Code Playgroud)

我尝试了一些${{}}没有成功的变体,并且找不到正确的语法,但我认为它一定是可能的。

小智 9

您应该为此使用bash 步骤。

像这样:

steps:
- bash: |
    echo "##vso[task.setvariable variable=FILE_VERSION]$(cat public/VERSION)"
Run Code Online (Sandbox Code Playgroud)


Edw*_*ero 2

您需要分两步完成此操作

STEP 1:首先设置静态值

  variables:
      VERSION: 7.2
Run Code Online (Sandbox Code Playgroud)

第 2 步:创建步骤来计算值

请注意,这仅适用于后续步骤

      - bash: |
          FILE_VERSION="$(cat public/VERSION)"
          echo "##vso[task.setvariable variable=FILE_VERSION]$FILE_VERSION"
Run Code Online (Sandbox Code Playgroud)

资源: https://learn.microsoft.com/en-us/azure/devops/pipelines/process/variables? view=azure-devops&tabs=yaml%2Cbatch

在此输入图像描述