2012-04-12 6 views
3

ビルドプロセスを自動化したい。JenkinsにSVNの可変URLを使った複数の設定をさせる

私たちは30以上の構成を持ち、それぞれ異なるSVNブランチを持っています。理想的には、私はメンテナンスの労力と人的ミスのリスクのために、30の別々のJenkinsジョブを作成する必要がないようにしたいと考えています。

これがために設計されましたが、残念ながらジェンキンスは、SVNのURLで構成マトリックスの軸を使用してサポートしていませんジェンキンスでどのような「マルチ・コンフィギュレーション・プロジェクト」です。

Jenkinsはローカルチェックアウトパスで変数を使用することはできません(URLの変数はうまく動作しますが、常に${BRANCH}(リテラル)というディレクトリに行きます)

https://domain.ext/something/${BRANCH}/をチェックアウトして/some/path/${BRANCH}に保存したいと思っています。これがJenkinに組み込まれているSCM機能

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

答えて

1

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

他の方法は、リポジトリについてジェンキンスを伝えるしないであろうが、トリガーを手動で構築し(例えばSVNを通してフックをコミット)と第1ビルド工程としてソースをチェックしてください。このことは、上で概説したような同様の行に沿った複数構成のプロジェクトとして行うこともできます。

0

私はジェンキンスが、それは私が必要なすべての分岐が含まれていることが非常に高いレベルにSVNリポジトリをチェックアウトすることによって、これを解決することになりました。しかし、理想的な解決策ではありません。なぜなら、あなたは'のすべてで012vに 'svn update'を実行するビルド中に時間を失うからです。同じ構成が、異なるSVNパスでトランクとブランチを構築する必要がありました:

0

は小さい規模で似問題を抱えていました。

最初の試みでは、チェックアウトURLで$ SVN_BRANCHを使用し、文字列パラメータでその設定を行っていました。手作業でうまく働いていましたが、マトリックスジョブでは動作しませんでした(Aleksiは既に指摘していたように)。私がマトリックスビルドでできることは、何らかの形で見苦しくなったフォローアップ仕事として、パラメータ化された仕事を引き起こしていただけでした。

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

関連する問題