5

同じSVNリポジトリに2つのサブプロジェクトがあるプロジェクトがあります。例えば:

svn://ip/svn/ trunk/subproject1
svn://ip/svn/ trunk/subproject2

プロジェクトのビルドには、両方のサブプロジェクトのビルドの結果を含める必要があります。ビルドを高速化するために、SVNがそれぞれ変更された場合にのみsubproject1のビルドを実行したいと思います(svn:// ip / svn / trunk / subproject1で)。サブプロジェクト2についても同様です

それを行うための最良の方法は何ですか?1つの仕事でそれを行うことはできますか?この場合、ビルドトリガーをどのように定義する必要がありますか?

または、サブプロジェクトごとに1つ、またはプロジェクトごとに1つ、合計3つのジョブを定義する必要がありますか?

どんな助けでもありがたいです!よろしく、マイケル

4

4 に答える 4

9

Jenkinsを使用してこれを実現するにはさまざまな方法があります。

  1. multi-SCMプラグインを使用すると、名前が示すように、1つのジョブに複数のソースリポジトリを含めることができます。

  2. n相互にトリガーする(つまり、相互に依存する)ジョブを定義できます。Build Triggersこれは>の下にありますBuild after other projects are built

  3. ダウンストリームジョブを制御するマスタージョブのオプションもあります。このオプションはPost-build Actions>の下にありますBuild other projects

ビルドトリガーに関しては、poll SCMオプションを使用できます。これは最も効率的な方法ではありませんが、GitではなくSVNを使用するとオプションが制限される場合があります。

すべてのビルドからの結果の照合についても言及されていることに気づきました。これは、単一のジョブを使用するか、のaggregate downstream test results下のオプションを使用することで実現できますPost-build Actions

最終的には、ビルド戦略を明確にする必要があります。どちらかのサブプロジェクトに変更が加えられた場合でも、何も壊れていないことを確認したいようです。multi-SCMプラグインが複数のリポジトリをポーリングするという概念にどれだけうまく対応できるかわからないので、それを考慮に入れる必要があるかもしれません。

私はあなたに試してみるためのいくつかのオプションを与えたと思います。乗り方を教えてください。

于 2013-02-27T10:43:07.517 に答える
2

これは古いスレッド(18か月)ですが、数日前にJenkinsマルチジョブプラグインが、前回のビルド以降にscmが変更された場合にのみビルドをトリガーできるオプションを組み込んだ新しいバージョンをリリースしました。

これは、SCMが変更された場合にのみビルドされます

このオプションに関係なく、ビルドを強制するオプションもあります。

于 2014-11-20T07:57:42.290 に答える
1

Jenkinsで利用できるマルチジョブプラグインもあります。これを使用して、1つのメインプロジェクトでサブプロジェクトビルドを階層的に実行できます。

于 2013-07-29T12:02:09.200 に答える
0

SVNで設定する方法がわかりませんが、GITを使用すると、ソースコード管理ステップで追加の動作を設定できます。

[ポーリング]を選択すると、特定のパスのコミットが無視され、[含まれる領域]が設定されます。この設定により、同じgitリポジトリ内の他のサブプロジェクトコミットをフィルタリングできます。

また、Build Triggersステップで設定を行い、 Poll SCMにチェックマークを付け、 Scheduleを空白のままにします。

自動デプロイを設定する場合は、gitリポジトリ側でWebフックを設定する必要があります。

Jenkinsのバージョンは2.32で、JenkinsGitプラグインです。

于 2017-02-24T03:45:31.330 に答える