私のジェンキンスで私は設定しました:
ソースコード管理
Gitリポジトリ: https://bitbucket.org/username/project.git
資格情報:ユーザー名/パスワード
Builderトリガー
変更がBitBucketにプッシュされたときにビルドする
私のBitBucket Webhookで:
http://Jenkins.URL:8080/bitbucket-hook
小さな変更を.txtファイルにプッシュしようとしましたが、Jenkenは自動的にビルドされません。 「今すぐビルド」を手動でクリックすると、成功と表示されます。
何が問題なのでしょうか?
Bitbucketリポジトリでは、プロジェクトは単純です。テストするテキストファイルがあります。テキストファイルに変更を加える限り、Jenkinsビルドがトリガーされるはずです。
編集:
Jenkinsのシステムログには、「ポーリングはまだ実行されていません。」と表示されます。しかし、Bitbucket Webhookリクエストログでは、すべてのリクエストを見ることができます。
Polling SCMを有効にする必要はありません。
次のように、Webhook(Settings-> Webhooks)がJenkins bitbucket-hook
を指していることを確認する必要があります: " https://ci.yourorg.com/bitbucket-hook/ " 。
最後の「/」に注意してください。これがないと、ビルドはトリガーされません。
リクエストの有無にかかわらず、Jenkinsからリクエストを送信するときに200ステータスコードを取得するため、これは面倒なことです。
Jenkins 2.53とBitbucketプラグイン1.1.5を使用して、webhookを機能させるには、最初にビルドを手動でトリガーする必要がありました。
私をひっくり返したのは、 documentation からのこの行です:
ジョブのSCM(git)がリモートリポジトリに変更があることを検出した場合、THEN
その後、webhookは素晴らしい動作をします。
チェックボックスに「SCMを投票する」と書かれている箇所をマークしましたか?また、リポジトリ内の変更をできるだけ早く検出するために、短い時間をスケジュールしてください。
たぶんあなたの問題は、あなたが長い間スケジュールを設定し、Push Jenkinsが変更を検出するまでしばらく待つことです。
BitBucketプラグインとのいくつかの苦労の後、私はそれを機能させることができました。以下は、ビルドをトリガーするために必要であることがわかったものの概要ですが、プラグインのドキュメントからは明らかではありません。
repository Push
トリガーが有効になっていることを確認してください。私はpull request created
/updated
で十分だと思っていました(PRでの構築は私が望んでいたものです) プラグインはPush
にのみ反応します 。https://bitbucket.org/REPOSITORY_OWNER/REPOSITORY_NAME
に設定します。プラグインは、SSH URLの場合、一致しません。これがお役に立てば幸いです。それでもビルドがトリガーされない場合は、次のクラスに対して ログの有効化 を試してください。
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
これには、Jenkisserverに bitbucketプラグイン が必要です。 https://yourjenkinsserver.com/bitbucket-hook/ に移動して確認します-クラッシュしますが、インストールしたことがわかります。
私は同じことをしていますが、ジェンキンスでは Bitbucket Plugin はありません。
Bitbucketで Jenkins Plugin を使用しています。各リポジトリでwebhookを設定し、単にJenkins URLを指定しました。次に、必要なすべてのジョブに、スケジュールの有無にかかわらず「Poll SCM」をチェックしたままにします(必須ではありません)。
それは本当にうまく機能していて、私はJenkinsで別のプラグインのインストールを避けます。
jenkins
とCI\CD
が初めての私のような人の場合:
自動的に構築したいリポジトリごとにwebhook
sを個別に追加する必要があります。
私はプロジェクトをビルドしようとしていましたが、jenkins url
をwebhook
として別のプロジェクトに追加し、webhook
bitbucketアカウントでのすべてのプロジェクトに共通です。しかし、そうではありません。簡単に見落とされがちな良い小さなもの。
また、私はオプションを使用しました:Build when a change is pushed to BitBucket
ではなくPoll SCM
、他の答えはそれを使用する必要があることを示唆しましたが、Build when a change is pushed to BitBucket
オプションは私のために働きました。
Jenkins 2.138.1とBitbucketプラグインで同じ問題があり、問題は「ソースコード管理」-> gitを有効にする必要があったことです。そうしないと、Jenkinsのログ(/ var/log/jenkins/jenkins.log)。
ブランチ指定子フィールドに注意を払い、プッシュ先というブランチを指定する必要があります。
変更が検出されない場合、BitbucketのJenkinsプラグインはジョブを開始しません。監視するブランチを複数追加できます。
公式ドキュメントでのみ言及されているように、ジョブのSCM(git)がリモートリポジトリに変更があることを検出すると、ビルドを呼び出します。
したがって、ブランチ指定子をデフォルト値*/masterのままにして、別のブランチにプッシュする場合、ジョブは実行されません。