簡體   English   中英

Azure DevOps - 管道檢查

[英]Azure DevOps - Pipelines checkout

我正在嘗試解決一個問題,即我無法為我遇到的問題找到正確的文檔。

目前,在我的項目中,我使用 Azure DevOps 管道在 function 中構建和部署簡單代碼。 我試圖接近的是讓多個階段做一些具體的事情。

管道示例

第 1 階段 - 代碼驗證(checktsyle,指南,...) 第 2 階段 - 測試

  • Job1:單元測試
  • 作業 2:集成測試階段 3 - 在雲上部署階段 4 - Function 測試階段 3 完成的部署。

問題

您可能知道,當您執行不同的階段時,管道會運行到不同的從站,這意味着將在所有階段應用 git 檢出。 我要做的是避免這種結帳,只在第一階段進行一次結帳,並將第一階段的結帳用於 rest(代碼相同..)

你知道我在這里想念什么嗎? 我知道我可以在一個包含所有步驟/作業的階段完成此過程,但我想將其拆分為不同的階段,以確保每個階段都有自己的責任。

在此先感謝您的時間。

這取決於您的代理在哪里運行,如果代理是自托管的,您當然可以使用公共位置並避免簽出自回購。 對於托管代理,我認為您不能使用 azure 管道中的階段概念來做到這一點,階段具有特定的語義,這些語義不會 map 達到您想要的結果 AFAIK。 在不堅持使用 azure 流水線階段的情況下,還有其他方法可以划分職責。 這取決於您希望通過這種職責分工實現什么;

如果您只是想對管道進行邏輯分區,則可以使用其他替代方法,例如模板,它允許您將分區分成可以單獨維護的文件,如果這能滿足您對職責分離的要求。 它們甚至可以像下面的示例中那樣分成不同的存儲庫,當然它們也可以駐留在同一個存儲庫中。

我用於緩存和恢復使用公共存儲庫的 C++ 項目的依賴項的示例。

- checkout: DevOpsScripts

    - template: up-restore.yml@DevOpsScripts
      parameters:
        CachePath: $(updepsCache)
        CacheKeyPrefix: 'updeps | "$(Agent.OS)"'
        DependenciesManifest: $(updepsPrefix)$(osSuffix).json

如前所述,為了實現這一點,您應該有一個自定義代理,您可以在該代理上創建一個文件夾來存儲代碼,例如 C:\code。 然后,您可以在此代碼路徑上簽出存儲庫並在下一階段禁用簽出。

您可以禁用舞台內作業的checkout

  - job: DeployCode
    displayName: Deploy code
    steps:
    - checkout: none
    - script: echo deploying code
      displayName: deploy code

禁用結帳

為了在您的自托管代理上的特定目錄上結帳,您應該:

- checkout: self
  clean: true
  path: C:\code

暫無
暫無

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

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