2011-06-30 15 views
19

Jenkinsジョブをビルドプロセスにマッピングする方法と、継承のカスケード構成でビルドできましたか?Jenkinsジョブのジョブ継承

任意のビルドに対して、私は少なくとも3つのジョブ(標準的な継続的統合/夜間、セキュリティスキャン、カバレッジ)といくつかのダウンストリーム統合テストジョブを持っています。構成slicerプラグインはいくつかの側面のクロスジョブを処理しますが、各ジョブは依然としてグループ内の他のジョブと関係のない非常に独自の個々のエンティティです。

私は最近、QuickBuildを見て、親ジョブが標準的なステップグループを定義し、その子が上書きして特化することができるジョブ継承を見ました。 Jenkinsの場合、私は仕事のコピーを持っています。私は何かを変える必要があるまでうまくいきます。 QuickBuildを使用すると、ジョブ間の関係により、ほとんど変更を加えずに変更を広めることができます。

私はこれをJenkinsでどのように処理するかを考えてきました。私は、パラメータ化されたビルド・トリガー・プラグインを使用して、ジョブが他のものを呼び出して、側面をオーバーライドできるようにしました。次に、呼び出されたジョブのデータを呼び出し元に収集します。私は、自分のスクリプトでJenkinsの機能を実装して、Jenkinsの有用性を損なうようにすることができないような側面がある一連の問題に遭遇すると思います。

ジェンキンスのビルドジョブの複雑さをどのように処理しますか? QuickBuildに重大な問題があると聞いたことがありますか?

+0

のないが、私は今日、これらの問題を見てきましたQuickBuildへの関心。特に、CIとNightlyビルドの設定オプションは、クリーンなワークスペースと復帰+アップデート、ビルド成果物の保存期間、成果物をアーカイブまたはデプロイする方法など、さまざまな設定オプションが必要です。それぞれについての指示を作成する。 Matrix/multiconfigプラグインは十分なオプションを提供していません。 私は、パラメータ化された作業領域で呼び出されたビルド自体だけを行うサブジョブで管理できると思いますが、複雑さが増しています。 – CJBrew

+0

各ジョブがCIの1つの側面を実行する場合は、ジョブ間でタスクの重複を行う必要はありません。私たちは、統合テストを実行する下流のジョブを持つビルドジョブを持っています。これらのステージテストのいくつかを定期的な時間間隔で実行したい場合は、タイムアウトトリガーとしてそれらのジョブ内にセットアップすることもできます。このようにしてビルドジョブはビルドされ、テストジョブはテストなどを行います。 'Archive for Cloned Workspace'タスクを使用すると、ダウンストリームジョブはビルドアーチファクトにアクセスできます。あなたが好きなら、答えを広げることができますか? – jbjon

+3

私は1年後にこの問題の解決策を見つけたのでしょうか? – sorin

答えて

2

私はほとんど同じ問題を抱えていました。私たちは、少なくとも2つの支店だけでなく、私たちの幹のために実行する必要がある一連の仕事を持っています。ブランチはバージョンを表し、新しいブランチは数ヶ月ごとに作成されます。このために新しい仕事を手作業で作ることは解決ではないので、いくつかの可能性をチェックしました。

template pluginを使用する可能性があります。これにより、ある種類のジョブの階層を作成することができます。ビルダー、パブリッシャー、SCM設定の継承を提供します。いくつかはうまくいくかもしれませんが、私にとっては十分ではありませんでした。

私がチェックアウトした2つ目は、ジョブクローニング用のAnt Scriptと、弟のBash Scriptです。これらは本当に素晴らしいです。このアイデアは、スクリプトを新しいジョブとして作成し、テンプレートジョブからすべての設定をコピーし、必要に応じて変更を加えます。これはスクリプトなので、非常に柔軟性があり、そのことで多くのことを行うことができます。欠点は、これが実際の階層にならないため、テンプレートジョブの変更は、すでに作成されたジョブに反映されず、作成されるジョブにのみ反映されます。

これらの2つのソリューションの欠点と利点を見てみると、両方の組み合わせが最も効果的かもしれません。すべてのジョブに当てはまるいくつかの基本設定でテンプレートプロジェクトを作成し、bashまたはantスクリプトを使用して、そのテンプレートに応じてジョブを作成します。

希望に役立ちます。

+0

テンプレートプラグインを使用してください。私たちはそれを使ってきました。これはテンプレートプラグインから本当に欲しかったすべてのことを成し遂げました! – Mark

1

問題の最終的な解決策は何かを尋ねられました。私たちの購入システムと何ヶ月もの間戦った後、私たちはQuickbuildで約4000ドルを費やしました。約2〜3ヶ月でテンプレート化されたビルドシステムが用意されており、とても満足していました。私は会社を辞める前に、システムにいくつかの製品グループがあり、リリースプロセスも自動化していました。

クイックビルドは素晴らしい製品でした。それは$ 40kクラスにあるはずですが、価格ははるかに低いです。私はJenkinsがこれを行うことができると確信していますが、Quickbuildはこの機能が焼き付けられていましたが、これは少し複雑です。 Quickbuildは合理的な価格で、ビルドとテストシステムの確固たる基盤を提供しました。現時点では

、私は竹を使用した事務所でだとその新機能ブランチ機能はQuickbuild我々はquickbuildを使用して、ほとんどのもののために偉大な動作しているようです

0

を何ができるかの多くを提供します願っています。私はAPIを使ってカスタムプラグインを書くことさえできました。クイックビルドが欠けている領域の1つは、ソナーの統合です。ソナーチームにはJenkinsのプラグインがあり、クイックビルドのプラグインはありません。

13

私は、私のチームが開発し、最近オープンソースで公開したプラグインのリリースをお伝えしたいと思います。 完全な「ジョブ間の継承」を実装しています。

あなたを助けるかもしれない、さらにリンクについてはここで

+0

開発を続ける予定はありますか?リストされた非互換性を 'Job Config History'と' Artifactory'で修正しました。 GitHubに関する最後のコミットは2015年2月からです。 –