いつもはGitHubやBitbucketと連携して使うことの多いNetlifyですが、初めてGitLabと連携させてみました。
GitHub、Bitbucketと並列にGitLabボタンもあるので、いつもと同じように連携できるのかと思いきや、
リポジトリがひとつも見つかりません。
どうやらサーバにインストールしたGitLabはこの方法では連携できないようです。
そこで、netlifyctlたるものを使って連携してみました。
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度目以降は何の問題もなくすこぶる快適にデプロイできてます。