13

Jenkins を使用してビルド パイプラインを作成しており、パイプラインでデプロイ ステップをトリガーする必要があります。これは、手動プロセスを意味します (ビルドは自動的に実行され、時間指定され、デプロイ段階で停止し、手動承認を待ちます)。

前のステップのパラメーターを使用してデプロイ ステップもトリガーする必要があります。

したがって、「パラメータ化されたプラグイン」を使用して、ジョブ間でパラメータを渡すことができます。自動または手動でトリガーされたダウンストリーム ジョブをトリガーできます (これが標準機能なのか、プラグインによって手動ビルドが追加されたのかは不明です)。

ただし、手動でパラメーター化されたジョブをトリガーする方法が見つかりません。

これを行う方法を知っている人はいますか?使用できる別のプラグインはありますか?

パラメーターが必要な理由は、一般的なデプロイ ジョブを作成し、デプロイするモジュール名と Maven バージョンを渡す必要があるためです。モジュールごとに特定の展開ジョブを作成することもできますが、これは非常に面倒です

私も次のことを検討してきましたが、それは面倒なようです:

  1. 自動化されたジョブはビルドを実行し、「デプロイ トリガー」ビルドをトリガーし、パラメーターを渡します。
  2. 「デプロイ トリガー」は、これらのパラメーターをファイル システム上のファイルに書き込み (ビルド ステップ - シェル実行)、実際のデプロイ ジョブを手動でトリガーします。
  3. 展開ジョブ (「展開トリガー」ジョブのワークスペースを使用する必要があります) は、ファイルシステムからパラメーターを読み取ります (EnvInject プラグインを使用)。

このアプローチにはさまざまな問題があります

  1. 私はそれが好きではありません。
  2. パラメータを渡すだけの中間ジョブがあります。これにより、Jenkins ワークスペースが乱雑になります
  3. ビルドは同じ WORKSPACE で実行されるため、壊れやすいように思えます (ただし、実行可能です!)
4

5 に答える 5

7

build-pipeline-plugin の現在の製品バージョン (1.4.2) では、パラメーターを使用して手動のダウンストリーム ジョブを指定できます。これはパイプラインに表示され、そこから開始できます。古いバージョンではそれができませんでした。

于 2014-03-28T07:36:05.543 に答える
2

一種の回避策があります:

  • アップストリームジョブで手動昇格を設定する (次の場合にビルドを昇格... > 手動で承認された場合のみ)
  • プロモーションで追加アクションを指定 > 他のプロジェクトでパラメーター化されたビルドをトリガーし、ジョブを指定してパラメーターを追加

アップストリーム ジョブの特定のビルドを手動で昇格させると、ダウンストリーム ジョブのビルドが開始されます。ただし、ダウンストリーム ジョブはパイプラインに表示されません。

于 2014-03-26T14:24:49.603 に答える
2

Build Pipeline Pluginをご覧ください: https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin

ジョブを自動的にトリガーするか手動でトリガーするかを指定できます。

また、ジョブ間でパラメーターを渡す必要がある場合は、Groovy プラグインをダウンロードする必要があります: https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin

パラメーターを渡すには、ビルドの開始時にシステム Groovy スクリプトを実行する必要があるジョブ間で SVN リビジョンを言うことができます。これは、ダウンストリーム ジョブで使用できる SVN_UPSTREAM パラメータを追加する例です。 注:システムの groovy スクリプトも含むダウンストリーム ジョブの作成に問題があることに気付きました。作成された元のパラメーターへの参照を吹き飛ばすようです。

import hudson.model.*
def build = Thread.currentThread().executable;
build.addAction(new ParametersAction(new StringParameterValue("SVN_UPSTREAM", build.getEnvVars()['SVN_REVISION'])));
println "SVN_UPSTREAM:" + build.getEnvVars()['SVN_UPSTREAM'];
于 2012-09-20T20:51:02.430 に答える
1

Build Pipeline Plugin はこれを行うことができますが、この記事の執筆時点では、どのリリース バージョンにもありません。メイン (当時のリビジョン 392) からプラグインをビルドしました。これには、この問題で言及されているパッチが含まれており、私にとってはうまくいきます。 それをインストールすると、最初のジョブで「Build other projects (manual step)」と呼ばれるビルド後のアクションを使用できるようになり、2 番目の (手動でトリガーされた) パイプライン ジョブに渡されるパラメーターを構成できます。

于 2013-01-14T13:18:48.890 に答える