2017-10-19 5 views
0

全体のSVNリポジトリをチェックアウトしている私はジェンキンスパイプラインを設定していると、以下の内容を持っているジェンキンスファイル:ジェンキンスは二回

pipeline { 
    agent any 

    stages { 

     stage('Build') { 
      steps { 
       echo 'Hey' 
      } 
     } 
    } 
} 

ポストはフックがジェンキンスが正常に構築し、私が見ることができるトリガーコミットこれはJenkinsのUIから始まります。 Jenkinsファイルから読み取るためにrepoをチェックアウトしており、チェックアウトはサーバー上の[email protected]フォルダーに保存されています。この後

Checking out svn https://<svn_server>/svn/Test/Core into C:\Program Files (x86)\Jenkins\jobs\CI_Build\[email protected] to read JenkinsPipeline/Jenkinsfile 
Checking out a fresh workspace because C:\Program Files (x86)\Jenkins\jobs\CI_Build\[email protected] doesn't exist 
Cleaning local Directory . 

完了し、私はレポ内のファイルに変更を加えると、ビルドは喜んでフックをコミットポストを経由して発生させますが、それはworkspaceというフォルダの中に再び全体のコードベースをチェックアウトしようとします。私はチェックアウトが一度起こり、 "できるだけ多くのSVNアップデートを使用する"オプションがキックインされ、変更されたファイルのみを更新することを期待していたでしょうか?それとも、私は間違った論理を持っていますか?

SVNのバージョン - 1.9.7

ジェンキンスバージョン - 2.84

答えて

1

ジェンキンスは、それはあなたのコードをチェックアウトする必要がある場合、それは知っている前に、パイプラインのスクリプトであるかを知る必要があります。あなたのパイプラインがコードをチェックアウトしないように指示する可能性があり、サブディレクトリを設定してチェックアウトを自分で開始することができます。または、別の場所で複数のリポジトリをチェックアウトすることもできます。 JenkinsがあなたのJenkinsfileを見るまで、あなたが望むものを知ることはできません。だからあなたのパイプラインを見るためにレポを一度チェックアウトしてから、やり直してください。

git(および他のバージョンの他のrepoプラグイン)では軽量または疎なチェックアウトがサポートされているため、リポジトリ全体ではなくjenkinsfileしか取得できません。私はこれがまだSVNでサポートされているオプションだとは思わない。

+0

これは今より意味があります。どうもありがとう。 – mac