web-dev-qa-db-ja.com

パラメータ化されたジョブを次々に実行する方法(パラメータなし)

私はジェンキンスで2つのパラメーターを持つ仕事をしています。パラメータのない別のプランを実行し、そのプランから既存のプランを必要な回数だけ起動したいと思います。

新しいプランは15分ごとに実行するようにスケジュールする必要があります(Jenkinsのスケジューラオプションによって実行されます)。そのプランのコードは次のようになります。

  • データベースに接続する
  • 必要なレコードセットを取得する
  • レコードセットのループを開始します
    • キーと値のペア(既存のジョブのパラメーター)を格納します
  • ループ終了

これが完了したら、保存された各キーと値のペアを使用して既存のジョブを実行する必要があります。 Jenkinsを使用して(1.406を使用して)このようにすぐに実行できますか、それとも既存のジョブをリモートで呼び出す必要がありますか? 「ビルド後のアクション」セクション(プランの構成)の「他のプロジェクトをビルドする」オプションを使用するときに、あるプランから別のプランにパラメーターを渡す方法がわかりません。

ありがとう

15
user706058

Parameterized Trigger Plugin があります。これをインストールすると、1つのビルドが完了した後にパラメーター化されたビルドをトリガーできます。

目的を達成するための最も簡単な方法は、このプラグインをインストールし、ビルドするキー/値リストを使用してプロジェクトを1回ビルドすることです。何らかの理由で、最初のジョブの完了後にビルドを複数回実行する必要がある場合は、リモートAPIを使用して最初のプロジェクトからビルドを開始できます。したがって、2つのオプションがあります。

オプションA

  • Project1が実行され、キーと値のペアを含むファイルが作成されます
  • Project1が完了し、パラメーターを使用してProject2を実行するように構成されています(パラメーター化されたトリガープラグインを使用)
  • Project2は、キーと値のペアをループし、それぞれに対して必要なことをすべて実行します

オプションB

  • Project1が実行されます。キーと値のペアごとに、次のURLにヒットしますhttp://server/job/<Project2 Name>/buildWithParameters?PARAM1=Value1&PARAM2=Value2(実際のプロジェクト名とパラメーター名/値を置き換える必要があります)
  • Project2はこれらのパラメーターを受け取り、必要に応じてパラメーター値を使用して、通常どおりにビルドします。
17
Laepdjek