SCMでレポを複製しないようにJenkinsジョブを設定します


17

Bitbucket Pluginを使用してJenkinsとBitbucketを統合しました。プラグインのWikiに従って、リポジトリがジョブのSCMに設定されている場合、特定のジョブがトリガーされます。ご存じのように、JenkinsジョブでSCMを設定すると、ビルド前の段階でこれが複製されます。

ここまでは順調ですね。ただし、設定しているジョブの主な目的は、リポジトリのコンテンツとは関係ありません。代わりに、Bitbucketから送信されたペイロードをジョブで処理するだけです。リポジトリをクローン化することは、本当に必要ないにもかかわらず、ストレージに関しては大した問題ではないと言えます。そうは思わないので、不必要な手順を追加し、時間とリソースを消費することは良い習慣ではありません。

質問は次のとおりです。JenkinsジョブでSCMを設定する方法を知っているが、リポジトリのクローンを作成することはできませんか?


2
Jenkinsをマイクロサービスとして使用しようとしているようですが、これはJenkinsの範囲外です:)。これがおもしろいので、これが動作するようになったら投稿してください。
トラビストンプソン

Jenkinsをマイクロサービスとして使用していません。なんでそんなこと言うの?実際には、これはすべて回避策です。多くのリポジトリに共通のパイプラインジョブを使用しています。Jenkinsfileは別のリポジトリにあります。したがって、Bitbucket Pluginでパイプラインを直接トリガーすることはできません。トリガーしないため、リポジトリごとに「プロキシジョブ」を作成し、ダウンストリームジョブとしてパイプラインに情報を送信することにしました。このような「プロキシジョブ」では、レポのクローンを作成する必要はありませんが、SCMにある必要があります。
ヘクターバルベルデパレハ

理解するのは非常に困難であり、実際に達成したいことよりも不可能なことについて多くのことを書きます。実際に達成したいことと、プロキシジョブがどのように適合するかについての詳細を追加できますか?
マイケルルバルビエグリューネ

上記の私のコメントについて話していると思います。これは、最初のコメントに対する単なる答えです。主な質問を参照してください、追加するものは他にありません。あなたが達成したいことは非常に明確です:「ビルド中にJenkinsがリポジトリのクローンを作らないようにする」。
ヘクターバルベルデパレハ

1
@HéctorValverdePareja確かに、あなたの言葉遣いはA /十分な詳細を与えることをheしているようです。(意見)あなたは、あなたの元の問題とあなたが実装しようとしている解決策を十分に注意深く説明することによって、このためらいを取り除くことができると思います。しかし、誰かが答えを書いた今、これはもうそれほど重要ではないかもしれません。
マイケルルバルビエグリューネ

回答:


18

はい、間違いなく。私はいつもこれをしています。パイプラインの構成オプションを指定できます。そのうちの1つはskipDefaultCheckout、パイプラインがデフォルトの「宣言:チェックアウトSCM」ステージをスキップするようにすることです。

このskipDefaultCheckoutオプションはパイプライン構文に記載されており、使用方法を示すJenkinsfileの例を次に示します。

pipeline {
  agent { label 'docker' }
  options {
    skipDefaultCheckout true
  }
  stages {
    stage('commit_stage') {
      steps {
        echo 'sweet stuff here'
      }
    }
  }
}

1
どうしますか。ステージでリポジトリを手動でクローンしますか?
Oz123

2
checkout scm必要な場所で手動でクローンを作成できます。devops.stackexchange.com/a/1916/2450を参照してください。
バーネット

5

宣言パイプラインを使用していない場合は、次の方法でSCMからのチェックアウトを回避できます。

node {
        skipDefaultCheckout()
        //...
}

1
ドキュメントへのリンクを追加して、skipDefaultCheckout()の詳細を説明してもらえますか?
030

既存の回答と比較して付加価値はありません。これは単に「これを試して」、説明がなく、良い回答ではありません。
テンシバイ

この回答は、受け入れられた回答の補足としては問題ありません-誰もが宣言的なPipelineプラグインを使用するわけではないので、手続き型のプラグインを使用している人には有効です。
-RichVel

1

達成したいのは、Jenkinsジョブでwebhookペイロードを処理することです。bitbucketプラグインを使用する必要はありません。おそらく、リポジトリを複製するように強力に設計されています。

私はこのstackoverflowの答えがあなたを助けることができると信じています。


そのリンクされた答えから関連する引用を含めてください...
Pierre.Vriens

1
DevOpsへようこそ!これは理論的には質問に答える可能性がありますが、答えの重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
リチャードスレーター

@RichardSlater DevOpsのポリシーについてはわかりませんが、他のサイトはネットワーク内リンクの例外を作成しています。

3
StackOverflowリンクでさえ@chicksはリンクの腐敗の影響を受けやすく、質問を要約することにより、回答者が質問がリンクによって回答されたと考える他の理由を明確に示します。
リチャードスレーター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.