簡體   English   中英

如何強制 TeamCity 將每個提交構建到 GIt 中?

[英]How to force TeamCity to build every commit into GIt?

現在,我是 TeamCity + Maven + Git 的快樂用戶。 我有一個像mvn deploy這樣的構建,它應該由每次提交到 Git 觸發。 所有測試都運行,一切都很好。 =)

但是這個方案有一個問題,在我的機器上運行mvn release:prepeare之后,它會在中央 Git 存儲庫中創建兩個提交(例如,版本1.11.2-SNAPSHOT ),其中一個被標記為1.1 因為 TeamCity 每 N 秒檢查一次最新版本,它實際上只構建版本1.2-SNAPSHOT的最新版本。 而這種方式構建1.1實際上永遠不會進入 Maven 存儲庫。 安全策略不允許我從我自己的機器上運行mvn deploy並且 Maven repo deploy 只能從 TeamCity 機器上完成。

因此,我想針對兩個提交的 repo 運行兩個構建。 據我所知,僅在 TeamCity 中配置一個構建是不可能的。

現在我正在使用解決方法:有一個額外的構建只構建“發布”提交,它是由帶有提交正則表達式的觸發器觸發的。 另一種可能的解決方法是使用針對專門的“發布”分支構建的附加構建。

但是,我不想有變通方法,並且想強制 TeamCity 針對 Git 的每個提交運行構建。 這也將幫助我理解失敗的測試。

讓事情從 TeamCity 中單個構建構建的問題在於,該特定構建綁定到一個分支(假設它是主干)。 但是,當 Maven 執行release:prepare時,它實際上創建了一個標簽。 當它創建此標簽時,您沒有構建它,因為您現有的項目與原始分支相關聯。

我的建議是要么改變你的公司政策,要么為每個標簽創建單獨的版本。 我們曾經使用 TeamCity,但遇到了您的問題。 我是公司的構建經理,我也負責發布。 我相信只要原始構建在 CI 服務器中正確傳遞,那么您執行mvn release:prepare release:perform甚至mvn deploy是完全可以的。

暫無
暫無

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

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