【问题标题】:Set bash command output into an azure yml variable将 bash 命令输出设置为 azure yml 变量
【发布时间】:2020-12-19 10:26:19
【问题描述】:

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

    variables:
      VERSION: 7.2 # works fine
      FILE_VERSION: ${{cat public/VERSION}} # syntax error

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

【问题讨论】:

    标签: azure-devops yaml azure-pipelines


    【解决方案1】:

    您应该使用bash step for that

    像这样:

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

    【讨论】:

      【解决方案2】:

      您需要分两步完成此操作

      第一步:先设置静态值

        variables:
            VERSION: 7.2
      

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

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

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

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

      【讨论】:

        【解决方案3】:

        我们不应该在定义变量时使用 cat 命令。该命令应位于任务/步骤中。

        根据您的描述,我假设您正在尝试将 public/7.2 的内容传递给 FILE_VERSION 变量。这是我的测试:

        1.Azure Devops Git 仓库:

        2.定义VERSION变量:

        variables:
              VERSION: 7.2
        

        运行cat 命令和set job-scoped variable

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

        整个yaml:

        trigger:
        - master
        
        pool:
          vmImage: 'ubuntu-latest'
        
        variables:
              VERSION: 7.2
        
        steps:
        - bash: |
                  FILE_VERSION=$(cat public/$(VERSION))
                  echo "##vso[task.setvariable variable=FILE_VERSION]$FILE_VERSION"
                  
        #Use second bash task to test the variable.
        - task: Bash@3
          inputs:
            targetType: 'inline'
            script: |
              echo $(FILE_VERSION)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-26
          • 2011-06-06
          相关资源
          最近更新 更多