19

IMO、この使用例は、プラグインの Web ページ/ドキュメントで具体的に説明する必要があります。

アップストリームを U 、ダウンストリームを D という名前のプロジェクトがあるとします。U がビルドを終了したら、U がビルドしたばかりの同じリビジョンを D にチェックアウトしてもらいます。U は常に HEAD をチェックアウトします。

これが私がやったことです:

  1. U では、「他のプロジェクトでパラメーター化されたビルドをトリガーする」ための「ビルド後のアクション」を追加しました。
  2. 「ビルドするプロジェクト」には、D と入力し、「安定」の場合にのみビルドします。
  3. 「Subversion リビジョン」のトリガーを追加しました。
  4. この設定を保存しました

次に何をすべきかわかりませんが、これが機能していることを示すフィードバックはありません。実際、プラグイン ソースにコミットされているこのテストケースでさえ、これだけで十分であることが示唆されています。

しかし、推測すると、U をパラメーター化されたビルドとしてマークし、それにパラメーターを追加することになっていると思います。このパラメーターには、U が D に送信する名前を付ける必要があります。しかし、正しい考えを持っていれば、このパラメーターに何を付ければよいかわかりません。D のコンソール ログも U のコンソール ログも、新しいパラメータについて言及していません。

推測して、「SVN_REVISION」という名前の U に文字列パラメーターを作成し、デフォルトで -1 に設定しましたが、効果はありませんでした。D がビルドをトリガーするたびに、SVN_REVISION はデフォルトで -1 に設定されます。


これはexport、D プロジェクトで実行した出力です。

+ export
export BUILD_ID="2013-03-20_09-48-32"
export BUILD_NUMBER="4522"
export BUILD_TAG="jenkins-D-4522"
export BUILD_URL="http://my.jenkins.server.com:8081/job/D/4522/"
export EXECUTOR_NUMBER="2"
export HUDSON_COOKIE="8ec52f7a-d60d-4640-83a9-dbed7351b32a"
export HUDSON_HOME="/opt/hudson"
export HUDSON_SERVER_COOKIE="633967fcd1d6f7b38a85042ada5c3949"
export HUDSON_URL="http://my.jenkins.server.com:8081/"
export JAVA_HOME="/opt/java"
export JENKINS_HOME="/opt/hudson"
export JENKINS_SERVER_COOKIE="633967fcd1d6f7b38a85042ada5c3949"
export JENKINS_URL="http://my.jenkins.server.com:8081/"
export JOB_NAME="D"
export JOB_URL="http://my.jenkins.server.com:8081/job/D/"
export LANG="en_US.UTF-8"
export LD_LIBRARY_PATH="/opt/jdk1.6.0_30/jre/lib/i386/server:/opt/jdk1.6.0_30/jre/lib/i386:/opt/jdk1.6.0_30/jre/../lib/i386"
export M2="/opt/maven/bin"
export M2_HOME="/opt/maven"
export MAVEN_OPTS="-Xms256m -Xmx512m"
export NHINC_PROPERTIES_DIR="/opt/nhinc/Properties"
export NLSPATH="/usr/dt/lib/nls/msg/%L/%N.cat"
export NODE_LABELS="master"
export NODE_NAME="master"
export OLDPWD
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/opt/java/bin:/opt/apache-ant-1.8.1/bin:/usr/local/bin:/opt/maven/bin"
export PWD="/opt/hudson/jobs/D/workspace"
export SHLVL="2"
export SVN_REVISION="24186"
export SVN_URL="https://a/url/trunk"
export TERM="xterm"
export WORKSPACE="/opt/hudson/jobs/D/workspace"
export XFILESEARCHPATH="/usr/dt/app-defaults/%L/Dt"
export _="/opt/java/bin/java"

したがって、SVN_REVISION 環境変数があるようです。しかし、それは必ずしもプラグインから来ているとは思いません。私の証拠は、ジェンキンスの「リポジトリ URL」の説明から来ています。

ビルド中、チェックアウトされたモジュールのリビジョン番号は、環境変数 SVN_REVISION を通じて入手できます。ただし、1 つのモジュールのみをチェックアウトする場合に限ります。複数のモジュールをチェックアウトしている場合は、svnversion コマンドを使用します。複数のモジュールをチェックアウトしている場合は、svnversion コマンドを使用してリビジョン情報を取得するか、SVN_REVISION_ 環境変数を使用できます。ここで、 は構成された場所に一致する 1 から始まるインデックスです。URL は、同様の SVN_URL_ 環境変数を通じて利用できます。

しかし、これが D ではなく U から設定されていると仮定しましょう。どうすれば D にそれを使用させることができますか、または D がトリガーされたときにそれを使用していることをどのように知ることができますか?


次に質問する必要がありそうな質問をさせてください。使用する必要があるパラメーターの名前がわかったら、そのリビジョンをチェックアウトするように D の構成を変更するにはどうすればよいですか? 「リポジトリ URL」を変更して@${PARAMETER_NAME}、末尾に a を付けるか、何かを変更しますか?

4

2 に答える 2

5

「Subversion リビジョン」パラメーターが機能しない理由はわかりませんが (以下のトラブルシューティングのヒントを参照)、「パラメーターの追加」ドロップダウンを使用して、「他のプロジェクトでパラメーター化されたビルドをトリガーする」の下にパラメーターを手動で追加してみてください。最も簡単なのは、「現在のビルドパラメーター」を追加することです。

おそらく次のように、「事前定義されたパラメーター」で必要な値を使用して、必要なパラメーターを指定することもできます。

SVN_REVISION=${SVN_REVISION}

D をパラメーター化されたものとしてマークする必要はありません。つまり、パラメーターをデフォルト値で指定し、ビルドが手動でトリガーされたときに Jenkins にパラメーターを要求させることができます。ただし、新しいビルドをスケジュールするもの (パラメーター化されたトリガー プラグインのように) は、ジョブがどのように構成されていても、常にそのビルドにパラメーターを追加できます。


トラブルシューティングのヒント: ビルド ステップを追加して、トリガーされたビルドに環境変数 (すべてのビルド パラメーターも含まれている必要があります) をダンプします。最も簡単なのは、環境をダンプするコマンドで「シェルの実行」/「Windows バッチ コマンドの実行」を追加することです ( exportUNIX シェルの場合set、Windows の場合)。

次に、ビルド コンソールの出力から、パラメーターが本来あるべき状態 (存在し、正しい値を持っている) であるかどうかを確認します。

于 2013-03-20T07:41:41.523 に答える