GitLab と Jenkins と ChatWork の相互連携についてのまとめ

結論

この組み合わせはつらい。

以下、この3つのアプリを相互連携する場合にどのような連携方法となるのかを書いていきます。

GitLab がトリガになる場合

GitLab → Jenkins の連携

  • GitLab から Webhook を Jenkins に飛ばせばよい
  • 叩くアドレスは以下のとおり
    • http(s)://ここにJenkinsの場所/project/ここにJenkinsのジョブの名前

GitLab → ChatWork の連携

  • 難しい
  • 手順としては、GitLab が Webhook を飛ばし、それを Webhook が受けられるサーバで受けて、それをトリガにしてそのサーバから ChatWork の API を叩きに行くようにしないといけない
  • Integromat のようなサービスを使うのが簡単だが、コードベースの管理ができなかったり無料プランでは回数に上限があったりする

Jenkins がトリガになる場合

Jenkins → GitLab の連携

  • このような連携はまれなので省略する

Jenkins → ChatWork の連携

  • sue445 さんがプラグインを作ってくださっています*1
  • しかし…… Jenkinsfile で使うことはできない*2
    • 現在では Jenkinsfile を使うのが普通なので、つらい
  • 私が出した結論は、ChatWork の API を叩くだけの自前のスクリプトを書いて、必要に応じて Jenkinsfile の中のシェルスクリプトでそれを実行するというものです*3

ChatWork がトリガになる場合

ChatWork → GitLab の連携

  • このような連携はまれなので省略する

ChatWork → Jenkins の連携

  • chatbot を設置した上でその chatbot が Jenkins の API を叩く動作を行えばいい
    • 参考

結論

この組み合わせはつらい。

*1:素晴らしい!

*2:できるけれどとてもつらい

*3:つらい

Powered by はてなブログ