前回の記事でGitLabのCI/CDを特集しましたが、実は今回やりたかったのはそこまで大掛かりなCIではなく、プッシュ時にオートマージ、オートデプロイなどでしたので、もっと簡単な仕組みでできます。
例えば特定ブランチ(全てでも可能)プッシュ時に特定のURLを叩き何らかの処理を行う(マージ、デプロイ、メール通知)などですね。
このような仕組みをWebhookといいます。(一般的なWebサービスによくある仕組みだと思います。)
GitLabでは下記の画面から簡単に設定できます。権限によっては見えないかもしれません。
メニューのSettings→Webhooksを選択します。
上記画面の「URL」には叩くとオートマージ、オートデプロイを実行できるURLを選びます。
「SecretToken」は未設定でもいけますが、不正アクセス防止のためにハッシュ値などをセットしておき、このハッシュ値と称号して、OKであればスクリプトを実行するなどすればOKです。
Triggerで「Push events」にチェックを入れておけばOKです。ブランチ名を入れておくとそのケースでのみ、実行されます。
上記で必要な項目に入力をして、「Add Webhook」を押せば登録されます。
この後、
- 特定のブランチにプッシュ
- プッシュをトリガーにして、別サーバーのあるURLを叩く
- そのURLにオートマージ、オートデプロイなどのスクリプトを実行
などができます。
参考リンク