web-dev-qa-db-ja.com

BitBucket WebHook Jenkins

Jenkinsビルドをトリガーするようにbitbutcketを構成したいと思います。

私はこれを調査するのにしばらく時間を費やしてきましたが、すべての答えは数年前のものであり、物事が変わったように見えるため、ガイドは見つかりませんでした。

私がやろうとしていること:特定のブランチへのbitbucket Pushはビルドをトリガーします。

私が持っているもの:任意のブランチへのプッシュでJenkinsへのHTTPリクエストを起動するBitbucket Webフック。ジョブ構成にチェックボックスを追加するBitbucketプラグインをJenkinsにもインストールしましたBuild when a change is pushed to BitBucket。 SCMセクションの構成済みブランチにプッシュしたにもかかわらず、このチェックボックスは機能していないようです(たぶん、間違って設定しましたか?このための最小限のドキュメントです)。

問題1:BitbucketはGETを発行しませんが、403を引き起こす別のリクエストを発行します。私はpostmanでテストしましたが、GETで機能しますが、ポスト。

問題2:このHTTPビルドリクエストは、任意のブランチへのプッシュで発生します。ビルドはまだ特定のブランチに制限されていますが、常に再ビルドする必要はないようです。

これらの問題にどのように対処しますか? Bitbucketは、これをカスタマイズする上で非常に柔軟ではないようです。 bitbucketのJenkinsプラグインには、多くの「悪い」レビューがあります。開発者は現在これをどのように行っていますか?

7
OrangePot

JenkinsのURLはbitbucketサーバーからアクセスできますか?はいの場合、それを行うのはかなり簡単です。 Webhookをリポジトリにhttp://<url-of-jenkins>/git/notifyCommit?url=<url-of-repository>として追加します。 jenkinsがこのPOSTを受信すると、webhookで指定したURLでこのgitリポジトリを使用するジョブのビルドを自動的にトリガーします。
しかし、それらのジョブに対してBuild Scheduleが空に設定されていることを確認する必要もあります。それ以外の場合はトリガーされません。 Webhook URLでもブランチを指定できます
こちらからPush Notification from repositoryをご覧ください
https://wiki.jenkins.io/display/JENKINS/Git+Plugin

9
hayderimran7

Jenkins CIサーバーの特定のソリューション-Webhook to Jenkins for Bitbucketプラグインは、最新バージョンのBit-Bucketで商品化されており、現在の価格は約$ 4800です。お金を節約したい人は、ビットバケットのウェブフック機能を使用して別のソリューションに行くことができます:-

Webhookを作成する手順:-

BitBucket側

1)bitbucketリポジトリに移動し、[リポジトリ設定]をクリックします。[ワークフロー]で[WEBHOOKS]オプションを取得し、Webhookを作成します。

a)webhookの作成:-URL https://JenkinsserverURL/git/notifyCommit?url=https://bitbucket.repository-link/repository.git

b)名前タブで、任意の名前を付けます

c)保存する前に[テスト接続]をクリックします。 httpステータス200を取得していることを確認してくださいd)ログの詳細を表示し、リクエストとレスポンスが正しいことを確認します。

ジェンキンス側からの注意事項:-

1)bitbucket webhookで言及されているリポジトリがJenkinsジョブで使用されていることを確認します。 2)SCMオプションで、ポーリングSCMオプションをアクティブ化/選択し、スケジュールに何も言及せず、空白のままにします。 3)休憩ジョブを設定します。

Git repoが変更を監視するたびに、Jenkinsで自動ビルドがトリガーされます。デフォルトではプッシュトリガーがアクティブになっています。他のアクションをアクティブにする場合は、Webhookの作成中にそれらのイベントを選択してください。

***リポジトリwebhookでブランチを指定するには:-

http://yourserver/git/notifyCommit?url=<URL of the Git repository>[&branches=branch1[,branch2]*][&sha1=<commit ID>]

乾杯、

20
Rizwan Javid