21

これはHow to make SCM polling work with the Jenkins Workflow pluginに関する質問です。そのスレッドは、 SCM ポーリングが有効になったらパイプライン スクリプトで SCM ポーリングを使用する方法に回答しますが、SCM ポーリングを有効にする方法については説明しません。

たとえば、マルチブランチ パイプライン プラグインを使用して、Jenkinsfile を使用して自動的にジョブを作成する場合、ジョブで「Poll SCM」オプションを有効にする方法はありません。これにより、最初からジョブがセットアップされた Docker コンテナーを作成するなど、オンデマンド環境をプロビジョニングすることが困難になります。コンテナが起動したら、Jenkins にサインインして構成に移動し、「Poll SCM」オプションを選択する必要があるためです。Cloudbees は、この問題の解決に役立つテンプレート プラグインを提供しています。

ただし、これは無料版を使用している Jenkins では利用できません。無料版の Jenkins を使用しているユーザー向けの回避策や解決策はありますか?

4

4 に答える 4

25

マルチブランチ パイプライン プラグインを使用して、Jenkinsfile を使用して自動的にジョブを作成する場合、ジョブで「Poll SCM」オプションを有効にする方法はありません。

必要もありません。マルチブランチ プロジェクトには、ブランチ インデックス作成全体の構成可能なポーリング間隔があり、これはブランチごとのビルド トリガーとしても機能し、Webhook も自動的に受信します。

于 2016-03-21T21:32:08.820 に答える
3

Bitbucket を Web フックに接続するには、宣言型パイプラインに以下を追加する必要がありました。

pipeline {
    stages {
        stage('Initialize') {
            steps {
                //enable remote triggers
                script {
                    properties([pipelineTriggers([pollSCM('')])])
                }
                //define scm connection for polling
                git branch: BRANCH_NAME, credentialsId: 'my-credentials', url: 'ssh://git@stash.server.fqdn/stash/my-project.git'
            }
        }
    }
}

これにより、マルチブランチ全体をスキャンすることなく、ブランチを再構築できます。これは、Bitbucket Project /Github Team-multibranch プロジェクトを使用する場合に特に価値があります。いくつかのリポジトリ/ブランチがあると、スキャンに数分かかることがあります。

ブランチに直接フックできるため、ビルド結果をはるかに高速に取得でき、副作用もありません。

注: 宣言型パイプラインでは、プロパティ呼び出しをスクリプト ブロックでラップする必要があります。

于 2019-01-14T13:22:36.863 に答える