互換性マトリックスを定義する複数のビルドをテストする(たとえば、ブラウザとOSで)マルチ設定プロジェクトを作成しようとしています。私はJenkinsfile
で単一の組み合わせの手順を定義したいと思います。Jenkinsfileでマルチ設定プロジェクトを使用する(パイプラインプラグインを作成する)
どうすればこの問題を解決できますか?私はJenkinsFileに依存するパイプラインのパラメータ化されたビルドを作成できますが、マルチコンフィギュレーションビルドに接続する方法を理解できません。
互換性マトリックスを定義する複数のビルドをテストする(たとえば、ブラウザとOSで)マルチ設定プロジェクトを作成しようとしています。私はJenkinsfile
で単一の組み合わせの手順を定義したいと思います。Jenkinsfileでマルチ設定プロジェクトを使用する(パイプラインプラグインを作成する)
どうすればこの問題を解決できますか?私はJenkinsFileに依存するパイプラインのパラメータ化されたビルドを作成できますが、マルチコンフィギュレーションビルドに接続する方法を理解できません。
マルチ設定プロジェクトでJenkinsfileをビルドステップとして使用することはできないようです。 JenkinsfileはジョブタイプであるPipelineジョブでも使用され、Jenkinsはジョブタイプ間の(簡単な)変換をサポートしていません。それに加えて、ビルドステップは、それがエグゼキュータスロット内の特定のノード上で実行されることを意味します。ただし、Jenkinsfileはマスター上で評価され、ビルドステップ自体で実行された場合には本質的に衝突するbuildsteps(ノードラベル付き)を定義します。
マルチコンフィギュレーションジョブを介してパイプラインをトリガし、マルチコンフィギュレーションジョブのパラメータを供給することができます。このように見えるというのが私のパイプラインの仕事は一例Jenkinsfileを持つ2つのテキストパラメータ、label
とversion
を持って
を(私もこれを行うには、パラメータ化トリガープラグインを使用):
node(this.label){
println this.version
}
私のマルチ設定ジョブが持っています次の構成:
alpha beta gamma
とversion
軸カスタムとlabel
軸スレーブversion=${version}
とlabel=${label}
このセットアップは3回呼び出されているパイプラインの仕事につながると私のパイプラインジョブをトリガする「トリガー/コールは、他のプロジェクトに基づいています」毎回異なるバージョンで、指定したラベルで実行しています。
[Pipeline] node
Running on master in /var/lib/jenkins/jobs/pipelinejob/workspace
[Pipeline] {
[Pipeline] echo
gamma
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
このソリューションは、テキストベースのパラメータまたはラベル名のみを渡す場合に機能します。 「異なるJDKでビルドする」のようなことをしたい場合は、使用するのがかなり難しくなります。私はそれがまだ役立っていることを願っています。
賞金を受け取るということは、一般的に回答を受け入れる必要があることを意味します。 – rbellamy