LoginSignup
6
5

More than 5 years have passed since last update.

backlogのgitからjenkinsをbuild

Posted at

前提

注意事項

  • Backlogのwebhookの仕様
    • pull-requestイベントからbranch名を取得できないっぽい
      • pull-requestからjenkinsをbuildできない
      • pushはbranch名を取得できる
    • 不要なpush(remote branchの削除)等は自前で判断する必要がある

完成イメージ

jenkins側の設定

  • http://yuroyoro.hatenablog.com/entry/2012/12/20/175205
    • jenkinsサーバーのapacheで.htpasswdを設定
    • jenkins自身のログイン認証が有効
      • 以上二つとも設定されている場合認証機能が競合しwebhookからのリクエストが実行できない(Basic認証が通らない)ため匿名ユーザーにビルドのみ権限を与えることで回避できる。
      • Jenkins > グローバルセキュリティの設定 > アクセス制御 から匿名ユーザーに以下の権限を付与する
全体
Read
ジョブ
Read
左記以外
×
  • ビルド対象のジョブ設定の リモートからビルド にチェックを入れる
    • 認証トークン には適当なランダム文字列を入力
  • 以上でcurlコマンドでbranchを指定してbuildが可能になったことを確認する
# {PASSWORD}は.htpasswdのものを使用
curl -i -u {USERNAME}:{PASSWORD} 'http://{YOUR_JENKINS_SERVER}/jenkins/job/{YOU_JENKINS_JOB_NAME}/buildWithParameters?branch={BRANCH_NAME}&token={TOKEN}'

backlog側の設定

  • https://{YOUR-BACKLOG-DOMAIN}.backlog.jp/settings/webhook/{YOUR-PROJECT-NAME}/create
  • WebHook URL にwebhookを受け付けてjenkinsにリクエストするアプリのURLを書く
  • バージョン管理に関するイベント > Gitプッシュ にのみチェックを入れ、Webhookを追加するを押す

  • 以上でpushした際にwebhookがアプリに飛び、アプリからビルドのリクエストが飛べば問題なし

まとめ

  • .htpasswdではまったので.htpasswdはないほうが望ましいのでは
  • Jenkins Backlog Pluginを使ったほうが諸々楽にできそう(未調査)
6
5
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
6
5