簡體   English   中英

將 bash 命令輸出設置為 azure yml 變量

[英]Set bash command output into an azure yml variable

我正在使用 Azure DevOps,我需要將 bash 命令的返回設置為一些變量,例如我有以下內容:

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

我嘗試了${{}}一些變體但沒有成功,我找不到正確的語法,但我認為它一定是可能的。

您應該為此使用bash 步驟

像這樣:

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

您需要分兩步執行此操作

STEP 1:先設置靜態值

  variables:
      VERSION: 7.2

STEP 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

在此處輸入圖片說明

我們不應該在定義變量時使用 cat 命令。 該命令應位於任務/步驟中。

根據您的描述,我假設您正在嘗試將 public/7.2 的內容傳遞給FILE_VERSION變量。 這是我的測試:

1.Azure Devops Git 存儲庫:

在此處輸入圖片說明

2.定義VERSION變量:

variables:
      VERSION: 7.2

運行cat命令並設置作業范圍的變量

- 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM