3

ビルドプロセスを自動化したい。

30以上の構成があり、それぞれに異なるSVNブランチがあります。理想的には、メンテナンス作業と人為的ミスのリスクがあるため、30個の個別のJenkinsジョブを作成する必要はありません。

これは、Jenkinsの「マルチ構成プロジェクト」が設計された目的ですが、残念ながら、JenkinsはSVNURLでの構成マトリックス軸の使用をサポートしていません。

また、パラメータ化されたビルドを使用してビルドすることもできません。これは、Jenkinsがローカルチェックアウトパスで変数を使用することを許可しないためです(URLの変数は正常に機能しますが、常に${BRANCH}(literal)というディレクトリに移動します。

https://domain.ext/something/${BRANCH}/一日の終わりに、チェックアウトしてに保存できるようにしたいと思い/some/path/${BRANCH}ます。これが、Jenkinの組み込みSCM機能(ポーリングなど)を利用できるようにする方法で行われると、さらに良いでしょう。

ジェンキンスに私が達成しようとしていることを理解させるにはどうすればよいですか?

4

3 に答える 3

1

私が見ることができるあなたが望むものに沿って何かをする2つの方法があります. 単一のプロジェクトにすべてのブランチを追加し (config の「場所の追加」を介して)、それらを別のディレクトリにチェックアウトし、何が変更されたかを「手動で」把握する (またはすべてをビルドする) ことができます。これは、構成軸が異なるチェックアウト場所であるマルチ構成のものと統合できます。つまり、すべての構成は、パラメーターを介して異なる作業ディレクトリを取得します。

もう 1 つの方法は、リポジトリについて Jenkins に通知するのではなく、ビルドを手動で (たとえば、SVN コミット フックを介して) トリガーし、最初のビルド ステップとしてソースをチェックアウトすることです。繰り返しますが、これは、上で概説したのと同様の方針に沿ったマルチ構成プロジェクトとして実行できます。

于 2012-04-12T09:50:09.447 に答える
0

JenkinsにSVNリポジトリを非常に高いレベルでチェックアウトさせて、必要なすべてのブランチが含まれるようにすることで、これを解決しました。ただし、すべてに対して「svn update」を実行するためのビルド中に時間がかかるため、理想的なソリューションではありません。

于 2012-08-03T13:25:52.443 に答える
0

小規模でも同様の問題がありました。トランクとブランチを同じ構成で構築する必要がありましたが、SVN パスは異なりました。

最初の試みは、チェックアウト URL で $SVN_BRANCH を使用し、それを文字列パラメーターで設定することでした。手動での使用ではうまくいきましたが、マトリックスジョブではうまくいきませんでした (Aleksi がすでに指摘しているように)。マトリックス ビルドでできることは、パラメーター化されたジョブをフォローアップ ジョブとしてトリガーすることだけでした。

ここで、「Jobcopy Builder プラグイン」を使用することになりました。最初のジョブを無効にして、それをテンプレートとして使用しました。コピー ジョブには、非アクティブ化されたジョブをコピーし、$SVN_BRANCH を実際のブランチ名 (トランクまたはブランチ/some_branch) に置き換えて、これら 2 つのジョブをアクティブ化する「コピー ジョブ」ビルド ステップがあります。「上書き」オプションもチェックしたので、「コピージョブ」の実行後にすべてのジョブ構成が更新され、ビルド履歴が保持されます。

于 2015-11-20T08:04:59.720 に答える