好的,所以我看到很多這類問題沒有真正的答案,而是反對它的警告。所以我明白爲什麼這樣做會很煩人/危險,並且考慮過這些事情。但是,隨着我的團隊項目/管理層的建立(至少現在是如此),對於我們來說,當某人提交併且Jenkins檢測到,拉取以及構建/修改時,能夠撤消對BitBucket的提交是非常合理的。測試失敗。有沒有插件/方式來做到這一點?在Jenkins上構建/測試失敗時的回滾提交
回答
它足夠容易去除但是HEAD從分支提交,你真的不能安全的幾個原因這樣做在詹金斯的工作。
第一個原因是,你可能不處理單個提交。根據jenkins的配置情況(例如等待perioud),一個jenkins工作可能會包含多個提交。另外,用戶可能一次推送多個提交。
其次,沒有保證的承諾是開始詹金斯仍然會在HEAD當詹金斯已完成執行。所需要的只是在Jenkins執行期間有人推動,現在你將不得不嘗試一個更復雜的rebase,如果沒有人爲干預,這可能是不可能的(特別是因爲默認情況下,你不能自動重定義合併提交)。
我強烈的建議是,而不是試圖從你的主人刪除提交/開發分支考慮,而不是擁抱如下模式:像gitlabs負責合併到主。然後,您可以在jenkins中設置一個多分支管道作業,自動生成分支並配置gitlabs以防止合併,只要jenkins作業失敗。這個想法是你爲每個任務創建一個分支,然後jenkins將master合併到你的分支,並在你提交一個pull請求時建立它。只有這個構建成功後,才允許你合併到master中。
如其他答案描述,更容易前檢查後比。
其實還有另一個想法。它基本上重複了手動合併。如果有人能夠成功實施它,並分享他們的經驗,那將會很好。
- 開發人員從未直接推送到
master
。 (*) - 新的內容推到
master-rc
,這始終是從master
一個快進。他們可以直接從合併開發者的推拉請求中,在評論和一些預先檢查之後推送。 (**) - 你的CI讀取特定從當前
master-rc
提交A
並測試它是否建立,測試通過等 - 如果所有的檢查都成功,則構建構件被存儲,
master
快進到A
。然後回到步驟3 - 如果檢查失敗,
master-rc
重置爲master
,和什麼用作者們大概有故障通知。然後返回到步驟3.(***)
這樣,您始終確信master可以構建 - 因爲它已經構建完畢。 (*)除特殊情況外,應取消生成中,master-rc
重設爲新的master
,如出現錯誤。或者,如果你需要這個,那麼你的master
就壞了,你應該停止步驟2-6直到解決。 (**)有一個選擇 - 要麼他們獨立於構建週期來完成,並且總是可能有一些新的內容超過master-rc
- 請參閱下一個項目。或者他們等到週期開始。後者更方便,當有拉取請求時可以自動合併,因爲有需要並且批准合併。 (***)如果master-rc
中有更多內容比失敗,它可以與失敗一起丟棄,以便作者可以重新綁定它。或自動重新發布,但這已經是一些複雜化了。
- 1. 如果測試失敗,讓Android的jenkins構建失敗
- 2. Watin在Jenkins測試失敗
- 3. 當Maven單元測試失敗時,如何讓Jenkins構建失敗?
- 4. 在Jenkins IOS構建失敗
- 5. Jenkins的Maven構建失敗
- 6. Jenkins上的Gradle構建失敗
- 7. 構建模塊時測試失敗
- 8. Fitnesse在Cruisecontrol.net執行:測試失敗時不會失敗構建
- 9. 如何讓maven在測試失敗時不會失敗構建
- 10. 在單個單元測試失敗時失敗TFS構建
- 11. 在jenkins中構建Selenium自動化時隨機失敗的測試用例
- 12. MySQL提交和回滾失敗
- 13. Jenkins和Maven,在生成測試資源期間放棄構建失敗構建
- 14. 使用TFS和Jenkins的個人構建(測試前提交)
- 15. Jenkins Android構建失敗
- 16. 如果沒有測試運行,如何失敗Jenkins構建?
- 17. 如果測試集中/跳過,失敗Jenkins-Invoked Grunt構建
- 18. 關閉Spring ApplicationContext時Jenkins構建失敗
- 19. 當JUnit測試失敗時,Mark Gradle在Jenkins中構建不穩定
- 20. 當任何JUnit測試失敗時如何讓構建失敗?
- 21. 在Ubuntu的Jenkins中構建失敗
- 22. 交易失敗後回滾
- 23. Jenkins在覆蓋失敗的測試中未失敗
- 24. Jenkins - 將JIRA與Jenkins集成,在Jenkins構建失敗時自動創建票證
- 25. Maven構建在Jenkins中失敗
- 26. 當通過Jenkins運行時,OpenShift上的Gradle構建失敗
- 27. Jenkins的Guice注入測試失敗
- 28. 當構建失敗時在Jenkins中創建QC中的缺陷
- 29. 可能有一個jenkins構建失敗測試,但不會失敗整個構建?
- 30. Jenkins部分構建/提交吊鉤上的模塊化構建