2016-09-21 11 views
1

私はgitリポジトリをチェックアウトするパイプラインジョブを持っています( コールは "repoA"としましょう)。 さらなる処理。上流のジョブのスクリプトは別の git repoに格納されています(これを "repoB"としましょう)。このジョブは、 "Poll SCM"オプションで構成されているため、repoAの変更によってそのジョブがトリガーされます。パイプラインのセクションでは、「SCMからのパイプラインスクリプト」オプションを選択し、repoBのマスターブランチからパイプラインスクリプトを取得するように設定しました。また、「コミット通知時にビルドをトリガーしない」というオプションを追加しました。私が期待しているのは、repoAにプッシュされた変更がジョブをトリガーするということです( ).reoBの変更はジョブをトリガーしません。しかし、 のrepoBへの変更をプッシュすると、ジョブがトリガーされます。Jenkinsは「コミット通知時にビルドをトリガーしないでください」

これはバグか、何か不足しているかどうかわかりません。

私はJenkins 2.7.4を実行しています。私のマスターJenkinsはUbuntuサーバー16.04.1 LTSで動作しています。すべての私のJenkinsプラグインは最新です。

答えて

1

ジェンキンスメーリングリストといくつかの交換の後、私は今、物事はそうここにどのように機能するかをよりよく理解し、私は他の人がそれを必要とする場合にしなければならなかったものです:

  • 変化というジェンキンスに通知するためにgitのフックを作成します。私たちは最後に、リモートでポスト受信フックを作成しました。
  • ジョブのポーリングを有効にしますが、スケジュールは空白にしておきます。
  • パイプラインセクションでgitからgroovyスクリプトをプルするように設定しますRepo(私の例ではrepoBです)では動作を追加しません: "コミット通知時にビルドを起動しないでください「
  • あなたのgitリポジトリをチェックアウトしたときに、ポーリングがあなたのスクリプトで(私の例では、それはrepoAある)が有効になっていることを確認します。デフォルトでは有効になっているあなたは私の知る限り理解し

それを指定しない場合「コミット通知時にビルドをトリガーしない」オプションは、最初に考えたように、ジョブのポーリングスケジュールからではなく、フックからの通知用です。

+0

JenkinsがrepoBへのチェックインによってビルドを開始しないという動作をどうやって取得しますか?私のビルドはまだ両方のリポジトリでチェックインすることから始まりますが、私はrepoAでチェックインすることから始めるだけです。スケジューリングは有効になりますが、スケジュールはありません。 – ansib

関連する問題