簡體   English   中英

如何避免重新部署相同的工件?

[英]How to Avoid redeployment of same artifact?

在我們的客戶端項目中,我們有 6 個應用程序,三個 Java 和三個 .NET。 我們在每個應用程序的不同文件夾中的同一存儲庫中都有代碼。 情況是我們需要將正在構建的工件與以前的構建進行比較,以了解是否進行了更改。 如果進行了更改,則部署它,否則不要部署它。 此外,基於應用程序。 假設我在一個 Java 和一個 .NET 應用程序上工作,我只想部署這兩個應用程序,而 rest 四個應用程序不需要部署。 我們如何在沒有人工干預的情況下實現這一目標? 請向我們提出解決方案。

您可以嘗試為每個應用程序設置構建管道和相應的發布管道。

  1. 在每個應用程序的構建管道中,您可以使用“ 路徑”鍵來指定可以觸發構建管道的文件路徑。

  2. 在每個應用程序的發布管道中,您可以嘗試設置一個步驟來執行 API “ Builds - Get Changes Between Builds ”,以獲取當前構建與先前構建之間的更改。 如果兩個構建之間沒有任何更改,請跳過后續部署步驟。

[更新]

是否有任何等效的 API 可以提供兩個工件之間的差異,即使構建手動運行而沒有任何更改? 因此,如果我們沒有看到結果有任何變化,我們可以取消發布管道。

為避免部署具有相同源版本的工件,如上所述,您可以嘗試使用 API“ Builds - Get Changes Between Builds ”。 在此 API 的響應正文中,它將返回兩個指定構建之間的提交數組列表。

  • 如果兩個構建之間有變化,“ count ”屬性的值是提交的數量。 並且在“”屬性(數組對象)中,這些提交將被列出。

    在此處輸入圖像描述

  • 如果兩次構建之間沒有任何變化,“ count ”的值為0,“ value ”是一個空數組。

    在此處輸入圖像描述

在您的情況下,您只需要檢查“ count ”的值是否大於0。如果大於0,則開始部署。 如果等於 0,則跳過部署以避免重新部署。

暫無
暫無

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

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