0

現在、Jenkins の gerrit トリガーを介して refs/for/ への git push で Jenkins ビルドをトリガーしています (レビューの開始時)。これにより、レビュー完了前のテストと検証に適したビルドが生成されます。レビューが完了すると (および必要なリベースが完了すると)、レビューは完了としてマークされ、これにより Git へのコードの最終的なマージがトリガーされます (早送りのみ)。

これは機能しますが、レビューが最終的にマージされるまで、Jenkins からのビルド アーティファクトを特別な場所に保存したいと思います。その時点で、最後のビルドのアーティファクトは別の場所に移動します (レビューが放棄された場合、それらのアーティファクトは代わりにパージされます)。

Jenkins で特別なマージ後のジョブを作成して、マージ時にトリガーすることも考えましたが、ブランチが放棄された場合にそのようなジョブをトリガーしたいので、マージ トリガーがそれをカットするとは思いません。これをより正確に自動化するのに役立つ gerrit/Jenkins トリガーはありますか? (現在、主要なコンポーネントごとにメインのビルド ジョブがあります... しかし、マージされたコンポーネントをトリガーして、前述のアーティファクトの最終的な配置を処理するグローバル ジョブは 1 つしか必要ないかもしれません。)

4

2 に答える 2

3

Jenkins には、「変更の放棄」のトリガーもあります。

ブランチ/変更/コミット/プッシュごとに複数の Jenkins ジョブを使用しても問題はありません (また、Gerrit で結合されたコメントが返されるため、余分な電子メール スパムはありません)。

マージまたは放棄時にのみトリガーされる新しいグローバル ジョブを作成できます (両方のトリガーを追加するだけです)。ビルドまたはビルド後のアクションは、必要なことを実行するシェル スクリプトまたはユーティリティ プログラムにすることができます。

于 2013-08-10T20:03:09.553 に答える
0

フックもあります。例えば

change-merged --change <change id> --change-url <change url> \ 
--project <project name> --branch <branch> --topic <topic> \
--submitter <submitter> --commit <sha1>

また

change-abandoned --change <change id> --change-url <change url> \
--project <project name> --branch <branch> --topic <topic> \
--abandoner <abandoner> --reason <reason>

または、サブスクライブしてカスタム アクションをトリガーできるイベント ストリーム。

$ ssh -p 29418 review.example.com gerrit stream-events
{"type":"comment-added",change:{"project":"tools/gerrit", ...}, ...}
{"type":"comment-added",change:{"project":"tools/gerrit", ...}, ...}
于 2013-08-12T18:59:59.593 に答える