2012-01-30 14 views
6

私たちのプロジェクト構造は分割されています。一方では、すべてのメインプラグインプロジェクトを含む/ pluginsフォルダがあります。一方、/ testsフォルダには、対応するメインプラグインプロジェクトの単体テストであるすべてのフラグメントプロジェクトが含まれています。Jenkins:最初のリポジトリを削除せずに、同じワークスペースに2つのリポジトリURLをチェックアウトするにはどうすればよいですか?

Jenkinsでは、複数のリポジトリ、さらにはワークスペース内の同じフォルダにチェックアウトすることができます。

問題は、2番目のURLがチェックアウトされたときに最初のチェックアウトが削除されることです。

/プラグインは、その後、ワークスペースディレクトリは「掃除」され、ワー​​クスペースディレクトリに配置されています。

Cleaning local Directory . 

が続いて2番目のディレクトリが/テストがチェックアウトされています。

もちろん、両方のフォルダの内容が同じワークスペースディレクトリに配置されていることが必要です。どうやってやるの?

+0

ビルドにはどのツール(セット)を使用しますか? –

+1

あなたはどのリポジトリを使用していますか? – Sagar

+0

@danowar - Tobyの答えはあなたのニーズに十分ですか?もしそうなら、そのようにフラグを立ててください。そうでない場合は、詳細を更新してください。 –

答えて

5

Subversionを使用してプロジェクトをチェックアウトしていると仮定すると、チェックアウトする各パスのデフォルト以外の値に「ローカルモジュールディレクトリ」を指定する必要があります。

たとえば、

svn:// myrepo/myproject/pluginsとsvn:// myrepo/myproject/testsがある場合、設定は次の行になります。

これにより、Jenkinsにチェックアウトと別の場所への2つのパスがあることが通知されます。

プロジェクトを別の作業コピーのサブフォルダにチェックアウトしようとしている場合は、親ディレクトリでsvn:externalsを使用する必要があります。

+0

100%が同意しました:トビーが描いたものはうまくいきます! –

0

(以前ワークフロープラグインという名前の)新しいジェンキンス2.0パイプラインでは、これがために別々に行われます。

  • メインリポジトリ
  • 他の追加のリポジトリ

ここで私は、特に言及していますマルチブランチパイプラインバージョン2.9へ

メインリポジトリ

これはあなたのJenkinsfileを含むリポジトリです。あなたのパイプラインプロジェクトの設定画面で

、リポジトリの名前を入力し、など

サブディレクトリにチェックしてください>追加の動作を使用しないでください。これにより、Jenkinsfileがサブディレクトリwhere Jenkins cannot find itに置かれます。Jenkinsfile

dir()を使用してサブディレクトリ内のメインリポジトリをチェックアウト:

dir('subDir') { 
    checkout scm 
} 

追加のリポジトリ

あなたにパイプライン構文発電機を使用し、より多くのリポジトリをチェックアウトしたい場合は Groovyコードスニペットを自動的に生成します。あなたのパイプラインプロジェクトの設定画面で

  1. 選択パイプラインの構文サンプル ステップドロップダウンメニューで、チェックアウト:一般SCMを選択します。
  2. SCMシステムを選択します(Gitなど)。リポジトリまたはデポに関する通常の情報 を記入してください。
  3. マルチブランチパイプラインでは、環境変数 env.BRANCH_NAMEには、メインリポジトリのブランチ名が含まれています。ドロップダウンメニュー追加の動作で
  4. はGroovyの生成サブディレクトリ
  5. クリックし チェックアウトを選択します。 Jenkinsは指定したSCMチェックアウトに対応するGroovyコードスニペット を表示します。
  6. このコードをパイプラインスクリプトまたはJenkinsfileにコピーします。
関連する問題