簡體   English   中英

Jenkins + GitLab CI管道Maven項目

[英]Jenkins + GitLab CI Pipeline Maven project

我有一個 Maven 項目,我正在嘗試使用 Jenkins 創建一個 CI 管道,以便在提交/合並請求上發布項目。 能夠成功發布新版本但陷入循環問題。

腳步:

  • 在項目中創建 Jenkinsfile。
  • 在 Jenkins 中創建管道項目。
  • 在 GitLab -> 集成中啟用 Webhook。
  • 開發人員將代碼從本地機器推送到 GitLab 存儲庫,版本為 1.0.0-SNAPSHOT。
  • 管道自動觸發,因為啟用了 webhook。
  • Maven 構建和測試運行成功。
  • Maven Release prepare and perform with "ci skip as commit prefix" 提交到 GitLab repo,版本為 1.0.1-SNAPSHOT(下一個版本)。
  • 再次觸發管道,因為新的提交已被推送。

截至目前,在 Jenkins 中,我正在檢查提交消息是否包含跳過 ci 並跳過暫存。 因此,每次提交都會觸發兩次管道。

在 Azure 管道中,我們可以通過給出***NO_CI***來停止循環。

您能否建議在 Jenkins 管道或 GitLab webhook 中處理此問題的最佳方法?

請參閱按源更改構建

或者,您可以使用 URL 觸發器(如上所述)代替固定間隔輪詢,但在 URL 末尾使用/polling而不是/build 這使得 Jenkins 輪詢 SCM 以進行更改,而不是立即構建。 這可以防止 Jenkins 運行構建,而不會對影響與作業無關的模塊或分支的提交進行相關更改。 使用 /polling 時,作業必須配置為輪詢,但計划可以為空。

管道→ 定義:來自 SCM 的管道腳本→ SCM → 附加行為 →添加輪詢忽略帶有某些消息的提交

如果設置,並且 Jenkins 設置為輪詢更改,則在確定是否需要觸發構建時,Jenkins 將忽略與 Pattern 匹配的消息提交的任何修訂。 假設構建服務器使用不同的消息提交更改,這可用於排除構建本身完成的提交觸發另一個構建

【我強調。】

免責聲明:未經實際測試,僅 RTFM。

暫無
暫無

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

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