Web アプリケーションのビルド、単体テスト、およびパッケージ化を行う、かなり複雑な Jenkins の仕事があります。状況に応じて、この仕事が終わったら別のことをしたいと思っています。これを行うための再利用可能/保守可能な方法は見つかりませんでした。それは本当にそうですか、それとも何か不足していますか?
複雑な仕事が完了したら、次のオプションを使用したいと考えています。
何もしない
低リスクの変更ビルド パイプラインを開始します。
- WAR ファイルをアーティファクト リポジトリにコピーする
- 本番環境にデプロイ
リスクの高い変更ビルド パイプラインを開始します。
- WAR ファイルをアーティファクト リポジトリにコピーする
- テストのためにデプロイします
- 受け入れテストを実行する
- 本番環境にデプロイ
これを行う簡単な方法が見つかりませんでした。最も単純ですが、あまりメンテナンスしにくいアプローチは、3 つの個別のジョブを作成し、それぞれがダウンストリーム ビルドを開始することです。このアプローチは、1 箇所ではなく 3 箇所で変更を加える必要があるという事実など、いくつかの理由で私を怖がらせます。さらに、ダウンストリーム ジョブの多くもほぼ同じです。唯一の違いは、呼び出すダウンストリーム ジョブです。仕事の急増は、維持不可能な混乱につながるようです。
これを1つの仕事として維持するためにいくつかのアプローチを使用することを検討しましたが、これまでのところうまくいきませんでした:
ジョブをマルチ構成プロジェクトにします ( https://wiki.jenkins-ci.org/display/JENKINS/Building+a+matrix+project )。これにより、ジョブにパラメーターを挿入する方法が提供されます。「他のプロジェクトをビルドする」ステップをパラメーターに応答させる方法が見つかりませんでした。
Parameterized-Trigger プラグイン ( https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin ) を使用します。このプラグインを使用すると、特定のトリガーに基づいてダウンストリーム ジョブをトリガーできます。ただし、トリガーは制限が厳しすぎるようです。それらはすべて、任意の変数ではなく、ビルドの状態に基づいています。私のユースケースで機能するオプションがここに提供されているとは思いません。
Flexible Publish プラグイン ( https://wiki.jenkins-ci.org/display/JENKINS/Flexible+Publish+Plugin ) を使用します。このプラグインには、parameterized-trigger プラグインとは逆の問題があります。チェックできる便利な条件がたくさんありますが、別のプロジェクトの構築を開始できるようには見えません。そのアクションは、公開タイプのアクティビティに限定されます。
Flexible Publish + Any Build Step プラグイン ( https://wiki.jenkins-ci.org/display/JENKINS/Any+Build+Step+Plugin ) を使用します。Any Build Step プラグインを使用すると、Flexible Publish プラグインで任意のビルド アクションを使用できるようになります。このプラグインがアクティブ化されると、より多くのアクションが利用可能になりましたが、それらのアクションには「他のプロジェクトをビルドする」は含まれていませんでした。
これを行う簡単な方法は本当にありませんか?私はそれを見つけられなかったことに驚いており、これをやろうとしている人を実際に見たことがないことにさらに驚いていますか? 私は何か異常なことをしていますか?私が行方不明であることは明らかですか?