結論
この組み合わせはつらい。
以下、この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 を叩く動作を行えばいい
- 参考
結論
この組み合わせはつらい。