2016-07-10 4 views
5

私は、数十のジョブにわたって同じビルドパラメータ(10個など)を再利用する予定です。複数のJenkinsジョブでビルドパラメータを再利用するには?

1つの方法は、ジョブを作成して複製することです。しかし、後で同じようなジョブが何百もあるときにビルドパラメータを変更したいのであればどうしますか?それらのすべてを1つずつ編集することは悪夢になる可能性があります。

パラメータ化されたプロジェクトを管理する方法はありますか?

この問題の解決策として、私はいくつかのオプションやプラグインをイメージして、グローバルなパラメータセットを定義して、それらを自分の仕事に再利用することができます。

答えて

3

どうすればEZ Templates PluginGitHubページもご確認ください)?

テンプレートを作成するときに、そのジョブは実際に他のものを実行してテンプレート(そのジョブを実行してはいけない)であり、そこに最低限の共通設定のみを置くべきであることを覚えておいてください。厄介になる。そうすれば、何の問題もないはずです。

+1

テスト済みで、スムーズに静かに動作します。ありがとうございます。 – kenorb

5

Configuration Slicing Pluginを試してみることができます。このプラグインを使用すると、ジョブのグループの一括設定(パラメータを含む)を実行できます。

また、グルーヴィー管理スクリプトを作成して、一度にすべてのジョブにパラメータグループを設定することもできます。良い出発点はthisですが、これは現在のジョブのパラメータを表示するだけであることに注意してください。必要に応じてそのスクリプトを変更する必要があります。

2

お試しくださいInheritence-Pluginこれは問題の解決に役立ちます。

多くのプロジェクトで同じプロパティを何度も定義する必要はありません。多くのプロジェクトでは、一度だけ定義された同じプロパティを参照することが可能でなければなりません。言い換えれば、複数回定義されているが同じ方法で使用されるすべてのものは、一度だけ定義され、何度も参照されるべきです。だから、複数のジョブ間で一度だけプロパティを定義する

、あなたがする必要があります。

  1. 継承プロジェクトなどの新しいジョブを作成します。
  2. 抽象的なプロジェクトとして選択することができます。このビルドはパラメータ化です。
  3. 継承可能なパラメータを追加し、上書き可能と設定します。
  4. 保存した後、このプロジェクトを親として設定すると、パラメータを継承できます。

jenkins-inheritance-plugin - Inheritable Parameter

主な機能の概要についてはJenkins Inheritance Plugin Tutorial Videoを確認してください。 GitHubページも参照してください。

残念ながら、プラグインはうまく維持されておらず、最新のJenkins(例:#22885)で使用するとバグが発生する可能性があります。

2

Pipeline Global Libraryもご検討ください。

このプラグインは、Jenkins内に「共有ライブラリスクリプト」Gitリポジトリを作成することでその機能を追加します。 JenkinsのすべてのPipelineスクリプトは、クラスパス内でこれらの共有ライブラリスクリプトを参照します。

+0

これはうまくいくかもしれませんが、複雑な解決策はありません。パイプラインはGroovyでコーディングする必要があるため、統合するには時間がかかります。第二に、オープンソースではありません。 – kenorb

0

あなたは

+0

どのプラグインを使用していますか? – kenorb

3

は残念ながらInheritance Pluginは、もはや維持され、それはバグだらけだし、それは、そのようなトリガパラメータ化はをすることはできませんビルドなど、いくつかの制限がありますされていません言及したすべてのジョブに注入することができ、この使用して単一のプロパティファイルを管理することもできます親プロジェクトで実装されているため、特定の設定を上書きすることも難しく、Foldersプラグインでうまく動作しません。

代替の方法があります。

  • Job DSL Plugintutorialを読む)テンプレートとして使用することができますのDSLとプロセスジョブ(「シード」仕事が)、その後、あなたの仕事にこれらのDSLスクリプトを実行することを可能にします。それは積極的にGitHubに維持されています。より高度なソリューションについては、代わりにPipelinesを使用することができます。あなたはこのプロジェクトからすべての出版社を使用して、テンプレートプロジェクトを選択を選択して、他のジョブ(全体で共有したいすべての設定を持つテンプレートプロジェクトを設定することができます
  • Template Project Plugin
関連する問題