[英]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
我嘗試了${{}}
一些變體但沒有成功,我找不到正確的語法,但我認為它一定是可能的。
您需要分兩步執行此操作
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.