1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

microCMSからGitHub ActionsへWebhook通知し、Firebaseにデプロイする。

Posted at

はじめに

オウンドメディアをJAMStack構成(Gatsby.js + microCMS + Firebase Hosting)で作成しました。

microCMSで記事を投稿・更新・削除した際に、GitHub ActionsへのWebhook通知を用いて、自動でデプロイするように設定したので、その忘備録としてまとめました。
間違えている部分や「こうした方がいいよ!」とかあればコメント頂けると幸いです。

今回参考にした記事は以下の2つの記事です。ありがとうございました。

microCMS側の設定

microCMSとGitHub Actionsでの連携をするには、microCMSの管理画面から、API設定の「Webhook」を開きます。
スクリーンショット 2020-11-12 18.24.26.png

追加ボタンを押し、GitHub Actionsを選択します。
スクリーンショット 2020-11-12 18.35.58.png

microCMSとGitHub Actionsと連携するために、以下の4つの情報を入力します。

  • GitHub Token
  • リポジトリユーザー名
  • リポジトリ名
  • トリガーイベント名 ※GitHubでyml設定ファイルに記載するtype属性の値を設定します。(今回はblog_postとしました。)

また、Webhookを通知するタイミングも合わせてチェックします。

スクリーンショット 2020-11-12 18.37.33.png

GitHub Tokenについては、GitHub Docsの公式サイトを参考に作成してください。

GitHub Actions連携

続いてGitHub Actionsの設定をしていきます。
該当のリポジトリページを開いて、Actionsのタブを選択します。
workflowが1つもない状態だと下記の画面が表示されます。
スクリーンショット 2020-11-12 18.53.47.png

今回は、Node.jsのworkflowを使用します。
スクリーンショット 2020-11-12 18.56.36.png

開くと、ymlファイルを設定できるページに遷移します。
スクリーンショット 2020-11-12 18.58.11.png

ymlファイルの中を以下の内容で記載します。

name: Node.js CI

on:
  push:
    branches: [ master ]
  repository_dispatch:
    branches: [ master ]
    types: [blog_post]
    
  
jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [10.x, 12.x, 14.x]

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - name: yarn install, build
      run: |
           yarn install
           yarn build
    - name: deploy to Firebase Hosting
      uses: w9jds/firebase-action@master
      with:
        args: deploy
      env:
        FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

中身についてはまた別の記事でまとめて書きたいなーと思ってます。(自分ために)
ymlファイルについてはわかりやすく書かれている記事がたくさんありますしね…

Firabase 認証トークン

デプロイの際に、Firebase認証トークンが必要になってきますので、それもお忘れないように。ymlファイル内の下記の部分ですね。

name: deploy to Firebase Hosting
      uses: w9jds/firebase-action@master
      with:
        args: deploy
      env:
        FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

Firebase認証トークンについては、下記のコマンドを打つと、Googleがアクセスリクエストしてくるので、許可して認証トークンをメモしておきます。

$ firebase login:ci

続いてGitHubのリポジトリのページで、Settingsを開き、サイドバーメニューからSecretsを選択します。
Nameに「FIREBASE_TOKEN」と入力し、Valueに先程メモした認証トークンを設定します。

スクリーンショット 2020-11-12 19.12.44.png

ここまで設定できたら自動でデプロイできているはずなので、試しにmicroCMSの画面から記事を作成して、GitHub Actionsが正しく動作しているかどうかを確認してみましょう。
正しく動作しているかどうかは、該当リポジトリのActionsページで確認ができます。

スクリーンショット 2020-11-12 19.16.32.png

最後に

まだメディア自体の記事数がそこまでないので、ビルド自体にそこまで時間はかかりませんが、記事数が増えたりするとその分時間がかかってしまうんですかね。SSGなどの特徴を踏まえてそのあたりもまた調査しておこうと思います。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?