みかづきブログ・カスタム

基本的にはちょちょいのほいです。

サーバにインストールしたGitLabとNetlifyを連携させる 🦊

f:id:kimizuka:20201127232839p:plain

いつもはGitHubやBitbucketと連携して使うことの多いNetlifyですが、初めてGitLabと連携させてみました。

f:id:kimizuka:20201127233718p:plain

GitHub、Bitbucketと並列にGitLabボタンもあるので、いつもと同じように連携できるのかと思いきや、

f:id:kimizuka:20201127233803p:plain

リポジトリがひとつも見つかりません。
どうやらサーバにインストールしたGitLabはこの方法では連携できないようです。

そこで、netlifyctlたるものを使って連携してみました。

github.com

Macにnetlifyctlをインストール

brew tap netlify/netlifyctl
brew install netlifyctl

こちらのコマンドでOKです。

Netlifyにログイン

netlifyctl login

こちらのコマンドで、ブラウザが立ち上がるのでブラウザでログインします。
最近このブラウザ経由でログインさせるをよく見る気がするのですが、流行ってるのでしょうか。

設定

連携させたいプロジェクトのフォルダにて、

netlifyctl init --manual

と入力すると対話式で設定できます。
このコマンドを実行したブランチが、そのままNetlifyに紐づきます。

Create a new site? (yes/no) 👉 yes
Directory to deploy (blank for current dir): (default: .) 👉 dist // ※ Nuxt.jsを使っているため
Your build command (hugo build/yarn run build/etc): 👉 yarn generate
Continue? (yes/no)  👉 yes

で、ここまで入力するとsshの鍵が表示されます。

Give this Netlify SSH public key access to your repository:

ssh-rsa HOGEHOGE...

この鍵をコピーして、GItLabの /profile/keys にアクセスしてSSHキーを登録します。

Continue? (yes/no)  👉 yes

登録したら対話を続けます。
対話を続けると、webhookのURLが表示されます。

Configure the following webhook for your repository:

https://api.netlify.com/hooks/hogehoge

このURLをコピーして、GItLabの /プロジェクト名/リポジトリ名/hooks にアクセスしてWebHookの設定を行います。
Triggerはとりあえず、Push eventsのみで良いと思います。

これであとは、このブランチにコミットをpushしたり、このリポジトリに向けたマージリクエストを作ってマージしたりしたときに、Netlifyに自動でデプロイされるようになります。
僕の場合は、なぜか初回だけyarnが見つからずにコケたのですが、2度目以降は何の問題もなくすこぶる快適にデプロイできてます。