1時間あたり、1日あたりの集計など、日付に依存するデータを処理するjenkinsタスクが多数あります。
それらはすべて定期的に実行するように構成されていますが、ネイティブjenkinsは動的パラメーターを使用して定期的なジョブを自動的にトリガーすることはできません。また、実行時にスクリプト内で必要なパラメーターを計算する必要があります(bashスクリプトコードなど)。
PREVHOUR=$(date --date="-1 hour" "+%Y-%m-%d %H")
$ BUILD_ID環境変数を使用して、ビルドの開始時間を取得することもできます。
問題は次のとおりです。 すべてのスロット(ワーカー)がビジー状態の場合、jenkinsはこのジョブを キューに入れます。また、そのようなタスクがトリガーされてから1時間後に実行されると、パラメーターの計算が間違ってしまいます。
したがって、開始時刻を作成するのではなく、TRIGGER時刻を取得する方法を見つけることができません。
もちろん、次のような不便な解決策はほとんどありません。
- 予約済みのマシンで単純な定期的なジョブを実行し、パラメータを使用したURLによって他のジョブをトリガーします
- スクリプトの最後の実行時間を追跡するファイル
ニーズに合ったプラグインを見つけようとしましたが、 このプラグインは手動(UIの「今すぐビルド」クリック)モードでのみ機能します。
Jenkinsが定期的なトリガー時に動的パラメーターを計算するためのプラグインはありますか?
ありがとう!