[英]If with variables not parameters in azure pipeline problem
我將以下代碼放入 azure 管道中:
- ${{ if eq(variables.enableAddonVM, true) }}:
- template: ../task-templates/addonVM.yml
parameters:
serviceConnectionName: ${{ variables.serviceConnectionName }}
customerResourceGroup: $(resourceGroupName)
location: ${{ variables.location }}
以下是我的觀察:
模板被跳過。 我通過在它之前的任務中打印它來檢查值。 它是真實的。 它仍然被跳過。
我還在模板旁邊應用了條件,如下所示
模板:../task-templates/addonVM.yml
條件:但仍然失敗。 我們無法在模板后使用條件。
刪除條件后,我還檢查了 addonVM.yml。 addonVM.yml 工作正常。
所以,我的最后一個問題是如何在 if 條件下插入變量? 有什么辦法可以解決這個問題嗎?
如果在 azure 管道問題中使用變量而不是參數
這取決於變量enableAddonVM
在編譯之前是否已經存在。
正如 jessehouwing 指出模板變量${{ variables.var }}
在編譯時處理:
查看文檔模板表達式語法以獲取更多詳細信息。
因此,如果變量enableAddonVM
是在先前的任務中生成的,則無法在編譯時獲取它。 那是因為這個變量是在運行時生成的。
要解決此問題,您可以使用condition
,例如:
steps:
- template: ../task-templates/addonVM.yml
parameters:
serviceConnectionName: ${{ variables.serviceConnectionName }}
customerResourceGroup: $(resourceGroupName)
location: ${{ variables.location }}
condition: eq(variables.enableAddonVM, true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.