Jenkins Paramerized Trigger + Copy Artifact


9

リリースビルドを処理するようにJenkinsを設定する作業をしています。リリースビルドは、Linuxでビルドする必要があるいくつかのバイナリを含むWindowsインストーラーで構成されています。

ここに私がこれまで持っているものがあります:

  • Windowsの部分とLinuxの部分は、別々のJenkinsプロジェクトとしてセットアップされます。
  • Windowsプロジェクトはパラメーター化されており、Subversionタグを使用してビルドおよびリリースされます。
  • ビルドの一部として、Windowsプロジェクトは(パラメーター化トリガープラグインを使用して)Linuxプロジェクトの同じSubversionタグのビルドをトリガーし、次に(アーティファクトコピープラグインを使用して)LinuxプロジェクトからWindowsプロジェクトのワークスペースにアーティファクトをコピーします。 Windowsインストーラーに含めることができます。

行き詰まっているところ:現在、アーティファクトのコピーは、最後に成功したビルドをコピーするように設定されています。パラメーター化されたトリガーがトリガーした正確なビルドからコピーするようにアーティファクトのコピーを構成する方がより堅牢に見えますが、それを機能させる方法を理解するのに苦労しています。これを助けることを意図した「ビルドセレクター」パラメーターのオプションがありますが、それがどのように設定されることになっているのか理解できません(そして、ビルドに1時間かかると、さまざまな可能性を盲目的に試すのはやや苦痛です。成功または失敗を見つけるために1つまたは2つ)。

これはどのように設定すればよいですか?ビルドセレクターはどのように機能しますか?

回答:


11

トリガーされたビルドが完了すると、TRIGGERED_BUILD_NUMBER_ <ジョブ名>と呼ばれるトリガーされたビルドのビルド番号に設定された新しい環境変数ができます。これを使用して、アーティファクトを明確にコピーして戻すことができます。

  1. Windowsビルド(「WindowsBuild」と呼ばれます)は、Parameterized Triggerプラグインを使用してLinuxビルド(「LinuxBuild」と呼ばれます)を呼び出します。

    この部分があります。トリガーされたプロジェクトがビルド完了するまでブロックすることを確認し、Linuxビルドが失敗した場合はビルドを失敗させます。

  2. 次に、別のプロジェクトステップからアーティファクトをコピーします。

    プロジェクト名:LinuxBuild

    どのビルド:特定のビルド

    ビルド番号:$ TRIGGERED_BUILD_NUMBER_LinuxBuild (すべてのプロジェクト名にはa-zA-Zまたは0-9以外の文字が_に置き換えられます。複数の文字が1つの_に圧縮されます)。


"$ TRIGGERED_BUILD_NUMBER_ <downstreamjob>"環境変数を手動で設定する必要がありますか?上流または下流のどちらの環境変数でも見つかりません。
15

1
プラグインWikiから、「トリガーされたプロジェクトがビルドを完了するまでブロックする」がチェックされている場合、$ TRIGGERED_BUILD_NUMBER_ <downstreamjob>が自動的に設定されることがわかりました。
2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.