私はJenkinsを使用して、毎日スケジューリングされるさまざまなジョブを管理して実行するシステムに変更を導入しています。実際のデータベースに書き込まないステージングセットアップと、実際のデータベースには書き込みを行わないセットアップがあります。Jenkinsのビルドプロセスに長い遅延を組み込むにはどうすればいいですか?
私は変更が押されたときに発生がしたいジェンキンス・フローは、これは
- 実行チェックです。
- ステージングシステムに展開します。
- 24時間待機します。
- ログをチェックして、ステージングシステムに過去24時間以内にエラーが発生していないことを確認します。
- 本番システムに展開します。
これらのビルドは、いつでも同時に実行することができます。私は午前11時に変更をプッシュし、ステージングに展開します。午後5時には私はより多くの変更を行い、ステージングにも展開します。翌日の午前11時には、変更の最初のセットだけが展開されてプロードされます。その日の午後5時に、2番目の変更セットが導入されます。
ここでは、ビルドフロープラグインを使用してwait_one_day
というジョブを作成し、sleep $((24 * 60 * 60))
というジョブをbashシェルで実行するシステムを構築しました。
これが最もエレガントな解決策のように見える、と私は24時間(ビルド・フロー・ジョブの一つであり、wait_one_day
のための1)、我々は変更を加えるたびに、2つのビルドエグゼキュータを拘束しています欠点を持っていません。
これを行うにはこれ以上の方法がありますか、このプロセスに役立つプラグインはありますか?ジェンキンスの仕事は別のジェンキンスの仕事をワンオフとして実行する予定ですか?
誰かが私のデザインについて建設的な批判や示唆を持っていれば、同じ問題を解決する別のアプローチについて聞いても大丈夫です。