テスト目的で、Jenkinsフリースタイルプロジェクトのbitbucketでwebhookトリガーを正常にセットアップしました。
残念ながら、私のJenkinsプロジェクトはPipeline形式を使用しているため、Bitbucketにそのようなプロジェクトをトリガーさせることはできません。問題は、Bitbucket webhookの送信元であるレポからプルするために登録されたJenkinsプロジェクトが存在しないようであり、Jenkinsは次のように返信します。
Error: Jenkins response: No git jobs using repository: ssh://git@myhost:7999/xxx/testing-jenkins.git and branches: master No Git consumers using SCM API plugin for: ssh://git@myhost:7999/xxx/testing-jenkins.git
パイプラインプロジェクトは、Jenkinsfile
が指定されたリポジトリ(ssh://git@myhost:7999/xxx/testing-jenkins.git
)、「SCMからのパイプラインスクリプト」オプションを使用します。
したがって、実際 Pipelineには一種の「gitコンシューマ」がありますが、これはJenkinsによって考慮されていないようです。おそらくこれは実際のプロジェクトソースではなく、パイプラインソースだからです。
BitbucketとJenkins Pipelineプロジェクトの統合の例はありますか?何も見つかりませんでした。
完全なBitbucketおよびJenkins Pipelineを探している場合は、 Bitbucket Branch Source Plugin を使用することを強くお勧めします。プラグインは、すべてのブランチとプルリクエストを検出し、リポジトリのルートにJenkinsFileを持つすべての人をビルドします。
Bitbucket Teamとしてプロジェクトを作成し、組織のすべてのレポをスキャンすることもできます。
CloudBeesの公式 doc を参照してください
私は同じ問題に苦しんでいました。以下は私が従った重要なポイントです。
Jenkinsのパイプラインジョブでは、
BitBucketリポジトリで、
[設定]> [サービス]に移動します
ドロップダウンから「Jenkins」と「サービスの追加」を選択します。
「Csrfが有効」をチェックします
エンドポイント: http:// username:[email protected]/
Jenkins home> Peopleでユーザー名とapitokenを見つけることができます。ユーザーを選択し、設定をクリックします。 [APIトークン]の下の[APIトークンを表示]ボタンをクリックすると、ユーザー名とapitokenが表示されます。
モジュール名:これはオプションです。監視する特定のファイルまたはフォルダを指定できます。
プロジェクト名:Jenkinsのプロジェクト名。
ジョブが何らかのフォルダー構造にある場合、たとえば「MyTestFolder/MyTestPipelineJob」がある場合、言及するプロジェクト名は「MyTestFolder/job/MyTestPipelineJob」です
Token:Jenkinsジョブで作成された「認証トークン」。
準備完了です!!
http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins/ といくつかの本能を参照しました。 :)
これと同じ問題があります。私の回避策は、 /をWebHookによってトリガーできるフリースタイルプロジェクトを作成し、そのプロジェクトの完了によってPipelineをトリガーすることでした。
それまでの間、修正を確認できるJenkinsのバグは次のとおりです。 https://issues.jenkins-ci.org/browse/JENKINS-38447
2017.10でこれを行う方法を考え出す時間を費やす
これらの3つのステップの後、bitbucketへの新しいコミット後にパイプラインジョブを実行します
私はまったく同じ問題を抱えていました...
原因は、ブランチ指定子に*/master
を使用していたことです。私はそれを綴る必要がありました:Origin/master
(ワイルドカードなし)。
今はうまく機能しています。
簡単な解決策は、Jenkinsで Generic Webhook Trigger Plugin を使用することです。
あなたがする必要があります
JENKINS_URL/generic-webhook-trigger/invoke?token=whatever_you_picked
プラグインは、トラブルシューティングが容易になるように、呼び出されたときに明確なフィードバックを提供します。
正しいリポジトリを複製するために必要な値をwebhookから選択するか、それが呼び出されたときに何をしたいのかはあなた次第です。
私はついに、Multi Branch PipelineのJenkinsfileでこの作業を行うことができました。
Bitbucketでは、Jenkins-URLとclone-URLを使用してWebhookを作成し、webhookに次のURLを配置します(JenkinsのプロジェクトのURLを正確に示します)。
http://<jenkins>/git/notifyCommit?url=http://<user>@<bitbucket>/scm/<project>/<repo>.git
トリガーをテストすると、結果は次のようになります。
No git jobs using repository: http://<user>@<bitbucket>/scm/<project>/<repo>.git and branches:
Scheduled indexing of <repo>
したがって、ジョブはトリガーされませんでしたが、マルチブランチスキャンがトリガーされたため、変更されたブランチがビルドされます。