0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

bitbucketでJenkins pipelineをトリガーしてジョブを動かすまで

Posted at

はじめに

bitbucketからJenkins pipelineをトリガーすることにより、テストコードを自動で走らせることになりました。
今回は自分で実装した2パターンで、bitbucketからJenkins pipelineへのトリガー設定方法を記録していきます。

環境

  • git
  • bitbucket
  • Jenkins
    バージョン関係なく実装できそう? なのでバージョンの記載はスキップします。
    Jenkinsとbitbucketの接続はできている状態から始めていきます。

設定方法

1. Jenkins pipelineを作る

Jenkinsにアクセスして、New Item からpipelineの名前を入力、下のリストからpipelineを選択します。
image.png

紹介するwebhookのうち、Trigger builds remotelyではトリガーだけ、Genetic webhook trigger pluginではトリガーからが取れます。(ex. PRの作成をトリガーにしたとすると、PRの作成者、branch名、destination branch名など)

3-1. Trigger builds remotelyを使う方法

Jenkinsの設定

まずJenkins pipelineのJob設定を開いて、Trigger builds remotelyにチェックを入れます。
image.png
Tokenを設定します。フォーム下の説明にもある通り、以下のURLでpipelineのトリガーができるようになるはずです。bitbucketの設定に必要なので、メモしておきます。

JENKINS_URL/PATH_TO_JENKINS_JOB/build?token=TOKEN_NAME or 
JENKINS_URL/PATH_TO_JENKINS_JOB/buildWithParameters?token=TOKEN_NAME
# ex. Authentication TokenをaraiWorksTokenに設定した場合
# http://jenkins/job/trigger-test/build?token=araiWorksToken

次に、Jenkinsでtokenの設定を行っていきます。
Jenkins右上のユーザ名を押して、Configure -> API tokenからAPIを設定します。
Add new Tokenを押して出てくるフォームに好きなtoken名を設定し、Generateすると自動でtokenが作られるのでメモしておいてください。
Screenshot 2024-11-15 at 21.47.09.png

bitbucketの設定

(web hookを作るには、repository adminまたはproject admin権限が必要です! 今回はrepository admin権限を持つユーザで進めます。)
bitbucketのrepository settings -> webhookへ移動します。右上のCreate webhookボタンから新しいweb hookの設定をしていきます.

まずwebhookの名前とURLを入力します。URLは先ほどJenkinsで設定したURLです。
そしてAuthenticationをNoneからBasic authenticationに変更してください。ここに先ほどJenkinsで設定したAPI Tokenを設定します。
image.png

下にスクロールすると、トリガーを発生させるイベントを選ぶことができます。
branchやPRのテストpipelineならcreataed, updatedあたりが良いかなーと思います。

テスト

bitbucketのwebhook設定ページにある、Test connectionで手軽にテストすることができます。HttpStatusが帰ってくるので、もし200でなかった場合はView detailsで確認してください。
image.png

コマンドでも確認可能です。

curl -X POST --user araiWorks:generated_token https://jenkins.example.com/job/trigger_test/build?token=araiWorksToken

これでJenkins pipelineが動けば成功です🥳

3-2. Genetic webhook trigger pluginを使う方法

準備

まずpluginをまだインストールしてない場合は、Manage Jenkins -> Pluginsから”Genetic webhook trigger"をインストールしてください。

Jenkinsの設定

インストールできたら、Jenkins pipelineのJob設定を開いてGenetic webhook triggerにチェックを入れます。
image.png

トリガーしたいpipelineが複数ある、かつそれぞれ別でトリガーしたい時はこのようなURLでトリガーできるようにした方が良さそうなのでTokenも設定しました。最終的にこのようなURLでpipelineを起動させることになります。bitbucketの設定に必要なので、メモしておきます。

   http://JENKINS_URL/generic-webhook-trigger/invoke?token=TOKEN
   # ex. TOKENをaraiWorksTokenに設定した場合
   # http://jenkins.example.com/generic-webhook-trigger/invoke?token=araiWorksToken
bitbucketの設定

(web hookを作るには、repository adminまたはproject admin権限が必要です! 今回はrepository admin権限を持つユーザで進めます。)
bitbucketのrepository settings -> webhookへ移動します。右上のCreate webhookボタンから新しいweb hookの設定をしていきます.

webhookの名前とURLを入力します。URLには先ほどJenkinsで設定したtokenを使ったURLを設定してください。
image.png

テスト

bitbucketのwebhook設定ページにある、Test connectionで手軽にテストすることができます。HttpStatusが帰ってくるので、もし200でなかった場合はView detailsで確認してください。
image.png

コマンドでも確認可能です。

curl -X POST http://jenkins.example.com/generic-webhook-trigger/invoke?token=araiWorksToken

これでJenkins pipelineが動けば成功です🥳

最後に

今回書いてないですが、個人的にはGenetic webhoook triggerだとトリガーしたPRの情報を得ることができるので使いやすかったです。今後Genetic webhook triggerを使った際に取得できる情報についても書いていきたいなと思っています。
お役に立てれば幸いです🍎

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?