簡體   English   中英

將最新的構建工件從“本地”Jenkins 發布到 Azure DevOps 發布管道?

[英]Publish latest build artifact from "LOCAL" Jenkins to Azure DevOps Release Pipeline?

我有一台本地 Jenkins 服務器在我的一台備用計算機(win10)上運行。 請注意,它不在任何類型的服務器后面,因此只能在我的本地網絡中使用。 我已經對其進行了設置,以便它從我的遠程 git 存儲庫中進行連續獲取,並構建工件並將它們存檔以成功構建。 我想將這些檔案發布到我的 AzureDevops 發布管道。 我該怎么做呢? (是的,我已經瀏覽了所有教程,但他們假設我讓 Jenkins 在雲上某處的 VM 上運行)。

到目前為止,我對網絡上的教程沒有運氣,因為我真的沒有這個 Jenkins 實例的 URL,因為它只在我的本地網絡上可用。 我無法在遠程 Jenkins 服務器上真正構建這些工件,因此我真的僅限於使用此解決方案來運行構建。

我希望在每次成功構建時,都能在我的 Azure DevOps 發布管道中直接使用 Jenkins 構建的這些檔案。 謝謝您的幫助!

因此,由於沒有其他人回答過這個問題,我將詳細說明我最終做了什么(可能不是最好的方法,但它適用於我的設置,歡迎提出建議!)。

要從本地計算機與 Azure DevOps 平台交互,您需要配置自托管代理(基於您的特定操作系統),這將允許您觸發構建、存檔並將構建工件上傳到 Azure DevOps 平台。 這樣您也不必輪詢 SCM 更改(我認為有時這不是那么優雅)。

1. 因此,您需要按照此處為您本地自托管代理概述的設置完成:

注意:我已選擇在 Windows 上將代理作為服務運行以進行設置

2. 接下來,按照您通常的 repo 訪問設置,按照通常的方式設置您的 Jenkins 構建作業。 需要注意的事項如下:

  • 在“Build Triggers”下,選擇 Poll SCM 選項,但確保計划為空,這將確保來自代理的 post-commit hook 的觸發器有效。 示例設置如下所示:

在此處輸入圖片說明

  • 在“構建后操作”下,確保您根據需要歸檔工件。 示例如下所示:

在此處輸入圖片說明

3. 現在是設置項目的“Jenkins 服務連接”的時候了,這可以從 Azure DevOps 中項目視圖左下角的“項目設置”選項卡訪問。 請注意,這基本上可以幫助您自托管代理定位並與本地運行的 Jenkins 實例(或其他網絡可訪問位置!)通信。 轉到 Pipelines -> Service Connections 和 Jenkins 的新服務連接。 請注意,這里的技巧是使用本地自托管代理看到的連接 URL,這意味着它可以是代理可以正常訪問的任何 IP(包括本地主機)。 用戶名和密碼與您在 Jenkins 中設置的相同。 示例如下所示:

在此處輸入圖片說明

注意:您可以嘗試執行“驗證並保存”,但它會引發錯誤,因此請忽略該錯誤或繼續執行“無需驗證即可保存”。 此外,您必須為每個項目執行此操作,這與每台機器的自托管代理設置不同。

4. 現在您只需要配置您的構建管道,將作業分配給正確的代理並指向正確的服務端點。 現在,在構建管道設置下,使用具有可以訪問構建服務器的自托管代理的代理池。 並選擇您在上述步驟中剛剛創建的 Jenkins 連接。 其余設置與您通常設置項目的構建管道的方式相同。 一個例子如下:

在此處輸入圖片說明

注意:這里的關鍵是正確的“作業名稱”(這應該與您在 Jenkins 構建服務器實例中設置的名稱相同)和正確的“Jenkins 服務連接”。

5. 其余的很簡單,因為您現在需要確保您有一個步驟“下載工件”(如果您不想要 DevOps 平台上的工件,則不需要)和“發布工件”(這是在您的 jenkins 隊列作業步驟之后,您的發布管道需要查看該構建工件並根據需要觸發它)。 確保設置正確的作業目錄以從本地自托管代理下載。 兩個步驟的示例設置:

在此處輸入圖片說明

在此處輸入圖片說明

注意:如果您在下載和發布路徑方面遇到問題,請參閱此鏈接以了解自托管代理的預定義變量: https : //docs.microsoft.com/en-us/azure/devops/pipelines/build/變量?view=azure-devops&tabs=yaml

6. 現在在您的發布管道中,您應該能夠添加來自構建管道的工件源。 示例如下所示:

在此處輸入圖片說明

現在您應該能夠在 Azure DevOps 平台上獲取雲中的本地工件,以防您因任何原因無法使用 Microsoft 提供的構建代理!

暫無
暫無

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

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