2016-04-15 15 views
-1

Jenkinsプラグインの開発は初めてです。
実行する必要があるプラグインを書き込もうとしているのいずれかマルチ設定タイプのジョブがJenkinsで実行されています。
ユーザーが選択した構成パラメータを確認するルールを作成します。ジョブをサブミットするときに、選択したパラメータに基づいて、を実行するか、または制限するかを決定します。
コンソール出力でジョブを実行できない理由を示すには、ユーザにコンソール出力を表示する必要があります。
誰かが私が拡張する必要のあるアイデアや、Jenkinsジョブを実行するためのフックを得るために実装する必要のあるアイデアはありますか?Jenkinsでジョブを実行する前に実行する必要があるJenkinsプラグインコード

答えて

1

Blocked queue job pluginこのプラグインを書いた私は、プラグインをブロックする2つの方法をサポートしているボックスのうち
を必要なものでしたジョブ -

  1. 別のプロジェクトの最終実行の結果に基づいています。現在のプロジェクトという点で

の最後に実行した結果に基づいて

  • はBlockQueueItemTaskDispatcher.javaがジェンキンのQueueTaskDispatcherがキューに存在するジョブを許可またはブロックするためにジェンキンスロジックに私たちにフックを提供する拡張プラグイン実行から。
    私は、選択したパラメータと現在の時間に基づいてプロジェクトを制限することができる新しいプラグインを開発するための出発点としてこのプラグインを使用しました。究極の目標は、日中の生産移行の実行を制限することです。
    QueueTaskDispatcherのisBlocked()メソッドをオーバーライドすると、hudson.model.Queue.Itemインスタンスが引数として渡されました。次に、ItemインスタンスのgetParamsメソッドを使用して、実行時にユーザーが選択したビルド・パラメーターにアクセスできるようにしました。そのライフサイクル値を解析しました。現在の時刻を確認しました。ライフサイクルがProductionで、現在の時刻が昼間だった場合、isBlocked()メソッドから非null CauseOfBlockageを戻してジョブを制限しました。その条件がfalseだった場合は、returnedCauseOfBlockageをnullに設定して、キューに入れられたジョブを実行できるようにします。

  • 1

    Matrix Execution Strategyを見ると、グルーヴィースクリプトが実行するマトリックスの組み合わせを選択できます。私はあなたのスクリプトが例外を投げた場合、ビルドを中止すると思います。

    バックグラウンドでは、マルチ設定プロジェクトはSCMフェーズを実行し、すべての実際の組み合わせを開始する制御ジョブ(またはflyweight)を実行します。このプラグインは、フライウェイトSCMチェックアウト後に実行されます。

    何もない場合は、これはあなたに

    免責事項から開始する作業のプラグインを提供します:私は

    +0

    このプラグインは役に立たないと思います。私の問題を詳しく説明しましょう。そのパラメータ化されたビルド。クライアントのライフタイム(有効な値はQA、QC、PROD)、クライアント名(有効な値はclient1、client2)などです。選択したクライアントの生産ビルドを午前8時から午後3時30分に制限します。クライアント2用のビルドを午前8時から午後3時30分にブロックする必要があると言うルールを設定できるプラグインがありますか?午後3時30分以降、キューに入ってから実行する必要があります。 – user55926

    +0

    助けてくれてありがとう@KeepCalmAndCarryOn – user55926

    関連する問題