web-dev-qa-db-ja.com

BitBucket Jenkinsは自動的にビルドしません

私のジェンキンスで私は設定しました:

ソースコード管理

Gitリポジトリ: https://bitbucket.org/username/project.git

資格情報:ユーザー名/パスワード

Builderトリガー

変更がBitBucketにプッシュされたときにビルドする

私のBitBucket Webhookで:

http://Jenkins.URL:8080/bitbucket-hook

小さな変更を.txtファイルにプッシュしようとしましたが、Jenkenは自動的にビルドされません。 「今すぐビルド」を手動でクリックすると、成功と表示されます。

何が問題なのでしょうか?

Bitbucketリポジトリでは、プロジェクトは単純です。テストするテキストファイルがあります。テキストファイルに変更を加える限り、Jenkinsビルドがトリガーされるはずです。

編集:

Jenkinsのシステムログには、「ポーリングはまだ実行されていません。」と表示されます。しかし、Bitbucket Webhookリクエストログでは、すべてのリクエストを見ることができます。

23
user697911

Polling SCMを有効にする必要はありません。

次のように、Webhook(Settings-> Webhooks)がJenkins bitbucket-hookを指していることを確認する必要があります: " https://ci.yourorg.com/bitbucket-hook/ " 。

最後の「/」に注意してください。これがないと、ビルドはトリガーされません。

リクエストの有無にかかわらず、Jenkinsからリクエストを送信するときに200ステータスコードを取得するため、これは面倒なことです。

36

Jenkins 2.53とBitbucketプラグイン1.1.5を使用して、webhookを機能させるには、最初にビルドを手動でトリガーする必要がありました。

私をひっくり返したのは、 documentation からのこの行です:

ジョブのSCM(git)がリモートリポジトリに変更があることを検出した場合、THEN

その後、webhookは素晴らしい動作をします。

3
John Veldboom

チェックボックスに「SCMを投票する」と書かれている箇所をマークしましたか?また、リポジトリ内の変更をできるだけ早く検出するために、短い時間をスケジュールしてください。

たぶんあなたの問題は、あなたが長い間スケジュールを設定し、Push Jenkinsが変更を検出するまでしばらく待つことです。

2

BitBucketプラグインとのいくつかの苦労の後、私はそれを機能させることができました。以下は、ビルドをトリガーするために必要であることがわかったものの概要ですが、プラグインのドキュメントからは明らかではありません。

  1. Webhookでrepository Pushトリガーが有効になっていることを確認してください。私はpull request created/updatedで十分だと思っていました(PRでの構築は私が望んでいたものです) プラグインはPushにのみ反応します
  2. リポジトリURL(Gitプラグイン内)をhttps://bitbucket.org/REPOSITORY_OWNER/REPOSITORY_NAMEに設定します。プラグインは、SSH URLの場合、一致しません。
  3. あなたはdoSCMポーリングを有効にする必要があります。プラグイン自体は変更をプルしません。スケジュールフィールドを空のままにしておくと、プラグインがトリガーしたときにのみリポジトリがポーリングされます。

これがお役に立てば幸いです。それでもビルドがトリガーされない場合は、次のクラスに対して ログの有効化 を試してください。

  • com.cloudbees.jenkins.plugins.BitbucketHookReceiver
  • com.cloudbees.jenkins.plugins.BitBucketTrigger
  • com.cloudbees.jenkins.plugins.BitbucketJobProbe
  • com.cloudbees.jenkins.plugins.BitbucketPayloadProcessor
  • com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource
2
Jezor
  1. https://bitbucket.org のプロジェクトページに移動します
  2. 設定-> Webhook->「Webhookの追加」をクリックします
  3. 追加 https://yourjenkinsserver.com/bitbucket-hook/
  4. もう一度押す

これには、Jenkisserverに bitbucketプラグイン が必要です。 https://yourjenkinsserver.com/bitbucket-hook/ に移動して確認します-クラッシュしますが、インストールしたことがわかります。

1
Martin Thoma

私は同じことをしていますが、ジェンキンスでは Bitbucket Plugin はありません。

Bitbucketで Jenkins Plugin を使用しています。各リポジトリでwebhookを設定し、単にJenkins URLを指定しました。次に、必要なすべてのジョブに、スケジュールの有無にかかわらず「Poll SCM」をチェックしたままにします(必須ではありません)。

それは本当にうまく機能していて、私はJenkinsで別のプラグインのインストールを避けます。

0
m4x1m0v3r

jenkinsCI\CDが初めての私のような人の場合:


自動的に構築したいリポジトリごとにwebhooksを個別に追加する必要があります。

私はプロジェクトをビルドしようとしていましたが、jenkins urlwebhookとして別のプロジェクトに追加し、webhook bitbucketアカウントでのすべてのプロジェクトに共通です。しかし、そうではありません。簡単に見落とされがちな良い小さなもの。

また、私はオプションを使用しました:Build when a change is pushed to BitBucketではなくPoll SCM、他の答えはそれを使用する必要があることを示唆しましたが、Build when a change is pushed to BitBucketオプションは私のために働きました。

0
Rakibul Haq

Jenkins 2.138.1とBitbucketプラグインで同じ問題があり、問題は「ソースコード管理」-> gitを有効にする必要があったことです。そうしないと、Jenkinsのログ(/ var/log/jenkins/jenkins.log)。

0
Rotem

ブランチ指定子フィールドに注意を払い、プッシュ先というブランチを指定する必要があります。

変更が検出されない場合、BitbucketのJenkinsプラグインはジョブを開始しません。監視するブランチを複数追加できます。

公式ドキュメントでのみ言及されているように、ジョブのSCM(git)がリモートリポジトリに変更があることを検出すると、ビルドを呼び出します。

したがって、ブランチ指定子をデフォルト値*/masterのままにして、別のブランチにプッシュする場合、ジョブは実行されません。

0
Tal Avissar

私もこの問題を抱えており、jenkinsのbitbucketプラグインを更新することで解決しました。

enter image description here

また、webhookのURLが正しい形式であり、末尾に「/」があることを確認します。

{JenkinsURL}/bitbucket-hook /

0
Asaad