簡體   English   中英

Azure DevOps 管道表達式

[英]Azure DevOps Pipelines Expressions

目標是根據管道中使用的任務來調整任務自定義擴展。 為此,我們想使用管道裝飾器

例如,如果任何用戶在他們的管道中使用 Powershell 任務,我們希望使用裝飾器執行我們的任務。

但我們可以弄清楚如何讓它發揮作用。

Yaml:

 steps:
 - ${{ if and(eq(resources.repositories['self'].ref, r esources.repositories['self'].defaultBranch), not(containsValue(job.steps.*.task.id, 'd9bafed4-0b18-4f58-968d-86655b4d2ce9'))) }}:
   - script: dir
     displayName: 'Run my script (injected from decorator)'

直接來自微軟教程

在 Azure DevOps Pipelines 內部,可視化編輯器會出現此錯誤:

 Unexpected property ${{ if containsValue(job.steps.*.task.id, '1c524b9b-9f4d-4897-8f1e-6ec33271d75c') }}

第一個屬性必須是任務

在運行時:

錯誤

我們還嘗試了condition()

condition: |
    and
    (
      eq(dependencies.A.result, 'Succeeded'),
      containsValue(dependencies.A.steps.*.task.id, '1c524b9b-9f4d-4897-8f1e-6ec33271d75c')
    )  

但是我們找不到正確的語法,object 的內容是 null:

object_null

任何人都知道如何檢索任務 ID 並使用它來調節任何進一步的任務?

您應該將表達式放在裝飾器 YAML 文件中,而不是管道 azure-pipelines.yml 文件中。 要開始使用管道裝飾器,您需要執行以下步驟:

  • 創建一個擴展文件。 這定義了擴展的類型,以及打包的文件。
  • 創建 YAML 文件。 此文件包含您要為每個管道執行的步驟。
  • 創建 HTML 文件。 這將在用戶在 Marketplace 中查看您的擴展程序時顯示。
  • Package 擴展。 這將創建一個 .VSIX 文件,您將使用它來注冊您的擴展。
  • 注冊您的分機。 這包括將您的文件上傳到 Azure DevOps Marketplace 並提供給您的 Azure DevOps 組織。
  • 將擴展添加到您的組織。 這允許將擴展應用到您的管道。

您可以從以下博客獲得更多詳細信息:

https://soltisweb.com/blog/detail/2019-11-07-simplifying-azure-devops-pipelines-with

暫無
暫無

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

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