簡體   English   中英

如何讓Jenkins推送到GitHub,但不會觸發推送

[英]How to get Jenkins to push to GitHub but not trigger a build off that push

安裝程序

我有一個Mac mini設置,Jenkins從GitHub下載回購並執行Xcode構建。 因為mini是從互聯網上防火牆,我每隔15分鍾就會對GitHub進行一次調查。

在開始Xcode構建之前,我讓Jenkins執行以下腳本來突破我的項目構建號並將結果提交到repo:

#!/bin/sh

agvtool bump -all
/usr/local/git/bin/git commit -a -m "This is Jenkins, updating your build numbers, sir."

在構建之后,我有一個后構建操作設置為運行另一個腳本拉動然后從GitHub推送,如下所示:

#!/bin/sh

/usr/local/git/bin/git pull origin develop
/usr/local/git/bin/git push origin develop

問題

因為Jenkins每次運行時都會執行提交並推送到GitHub,所以下一次輪詢會找到上次推送的更改,無論是否有其他實際更改,都會創建新的構建。

問題

在我的設置中有什么不可思議的東西,我應該做的不同嗎? 我希望Jenkins更新我的Xcode目標的內部版本號並提交並將結果推送到GitHub。 這種配置顯然可以實現這一點,但是每15分鍾就有一次構建的副作用,而不是每15分鍾構建一次。

Jenkins正在咨詢lastSuccessfulBuild的SHA1,以確定是否有更改,但它在我提交之前就是這樣做的。 有沒有辦法將當前版本的SHA1設置為由版本號凸起的提交產生的​​哈希? 像這樣的東西:

#!/bin/sh

agvtool bump -all
/usr/local/git/bin/git commit -a -m "This is Jenkins, updating your build numbers, sir."
NEW_SHA=$(/usr/local/git/bin/git rev-parse HEAD)
# Some awesome Jenkins-fu to set the SHA1 of the current build to NEW_SHA

這種方式當Jenkins比較哈希時,下一次它將不會構建,除非自提交版本號以來已經有變化。

感謝您的幫助。

我認為這個問題可以回答你的問題,但我不能肯定,因為我們沒有在輪詢分支上進行構建版本增量。 我也會在構建之前執行git push,這樣你就不必擔心在構建期間提交代碼時會發生多少次合並。 值得慶幸的是,如果保持原樣,那么Xcode項目合並的方式就不用太多了。

暫無
暫無

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

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