Jenkins が独自の名前付きブランチでコミットすることを検討してください。これには多くの利点があります。最大の利点は、他の誰かがrelease
ブランチに変更をプッシュすることを Jenkins が心配する必要がないことです。そうできるのは Jenkins だけです。Jenkins ビルド スクリプトは次のようになります。
hg clone --updaterev release http://path/to/repo
hg merge default || true # merge the latest from master
...build here...
hg commit -m "Auto commit from Jenkins for build $BUILDNUMBER" || true
hg tag build_$BUILDNUMBER
hg push
このようなセットアップを使用すると、いくつかの利点が得られます。
- 失敗したビルドは新しいコミットを作成していません
- ジェンキンスのプッシュは常に成功します
- Jenkins のタグ コミットは「リリース」ブランチにありますが、デフォルト ブランチから引き続きアクセスできます
|| true
は、 Jenkins に対して、マージ (マージするものが何もない場合) およびコミットするものがない場合、ゼロ以外の終了コードでビルドを失敗させないように指示していることに注意してください。
毎回新鮮なクローンを作成する代わりにhg pull ; hg update -C release
、適切なサイズのリポジトリの場合は、保証された白紙の状態で開始するのが好きです。