4

私たちのプロジェクトでは、リモート マスター ブランチから実行されている jenkins ジョブがあります。開発者は、このリモート マスターからリベースして、最新の変更をローカル コピーにフェッチすることがよくあります。私たちが望むのは、ジェンキンが壊れているとき (赤または黄色のボール)、このリベースを避けることです。指示は「ジェンキンスが緑色の場合にのみリベースする」ですが...人々は怠け者です:-)

では、実行が失敗したときに git リポジトリをブロックするように、jenkins ジョブで何かを行うことはできますか?

よろしくお願いします!

4

1 に答える 1

0

git リポジトリにマージする前にコミットを検証していないようですが、頻繁に git にマージした後にコミットを検証しているようです。

すべてのユーザーの ssh キーを git リポジトリから削除する以外に git pull を無効にする方法はないと思いますが、これは実現不可能です。Jenkins でビルド後の手順を実行して、Git のauthorized_keys ファイルを操作して、git リポジトリへのアクセスをブロックすることができます。(動作するかどうかはわかりません)

各ビルドと検証に約 2 時間かかる同じシナリオがあり、コミットごとにこのテストを実際に実施することはできません。しかし、私たちはこの状況を管理することができました。

ゲリットを使用している場合:

Jenkins Gerrit-trigger プラグインを使用する代わりに、すべての承認があり、マージして検証を実行する準備ができている変更について、gerrit 全体をポーリングする独自のスクリプトを作成できます。検証が成功すると、そのジョブのすべての変更が自動的にマージ (Gerrit で送信) されます。これにより、悪いコミットがマージされるのを避けることができます。

gerrit を使用していない場合:

2 つの別々のブランチを持つことができます

  1. 開発ブランチ (すべての開発者が変更をプッシュする場所)
  2. 統合ブランチ (開発者が変更をプルできる場所)

すべての開発者は変更を開発ブランチにプッシュし、頻繁に開発ブランチを検証し、検証が成功した場合にのみ変更を統合ブランチにプッシュできます。

于 2013-11-07T01:07:59.870 に答える