2017-04-11 3 views
2

私はbitbucketブランチソースプラグインを使用しています。これは、bitbucket repos全体をインデックスするbitbucketチームプロジェクトです。私のjenkinsfileにもcheckout scmが一度だけ入力されているにもかかわらず、jenkinsfileが起動する前にjenkinsがチェックアウトを実行します。bitbucketブランチプロジェクトでチェックアウトが2回行われるのはなぜですか?

"buildWithParameters"を介してリモートでトリガされるパラメータ化されたパイプラインを使用する必要があり、1つのコミットハッシュがパイプラインに渡されます。しかし、問題はbitbucketプラグインが独自のチェックアウトを開始する前にjenkinsfileが20〜30を超えるコミットをビルドにコミットすることで、2番目のパラメータ化されたチェックアウトが役に立たなくなります。

何この二重のチェックアウトが発生したときにも奇妙であるが第2パラメータ化チェックアウトは、多くの場合、ログエントリで終わるということです。実際に行う必要がありながら

> git rev-parse 19835cab351224455778899sdggscvhjkkknb42a3addfb^{commit} # timeout=10 

> git rev-parse --is-inside-work-tree # timeout=10 
Fetching changes from the remote Git repository 

そしてthatsのすべてを、単にそのログの1行、何も実行されません。どのように最初のチェックアウトを避けるために?

答えて

1

私はJenkins Pipelineの初心者ですが、Jenkinsは最初にjenkinsfileを読むためにgithub/bitbucketコードを取得する必要があります.Jenkinsfileを読んだ後、ファイル内の特定のscmステップが実行されます。

an issue in Jenkins backlogがあり、チェックアウトを行わずにJenkinsfileを読み込もうとしています。

+0

残念なことにテストの後でそうです。問題番号を指摘できますか? – koller23

+0

私はそれが存在するならば(視覚化として)自動追加されたチェックアウトステージを削除しましたが、それは興味深いです(これは[これ1](https://issues.jenkins-ci.org/browse/JENKINS-33273) –

1

「宣言:チェックアウトSCM」の「ステージ」を参照している可能性があります。もしそうなら、skipDefaultCheckoutは次のようになります:

pipeline { 
    agent { label 'docker && git && rbenv' } 
    options { 
    skipDefaultCheckout true 
    } 
    ... 
+0

です) jenkinsfileで本当のチェックアウトはまだ残念ながら実行されています。 – koller23

+0

これはMultibranchパイプラインプロジェクトにも便利です。このようなプロジェクトは2度チェックアウトされます.1回はJenkinsfileを読み込み、もう1回はパイプラインスクリプトを実行します。 – Robotron

関連する問題