2020-04-17
GitHub Actionsでブログを自動デプロイされるようにした
このブログがmasterにpushされると自動でFirebaseにデプロイされるようにした
本当はmasterにmergeされたらデプロイとなる方が望ましいのだろうが、まぁ個人のブログなのでブランチ運用は適当にやっている
やったこと
-
作業ディレクトリルートに
.github/workflows
ディレクトリを作成し、適当な名前.yml
を配置する -
デプロイフローを記述する(当ブログの場合は↓)
name: Deploy to hakozaru.com on: push: branches: - master jobs: build: name: Build gatsbyjs runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@master - name: Use Node.js 10.x uses: actions/setup-node@master with: node-version: "10.x" - name: yarn install and build run: | yarn install yarn run build - name: Upload artifact uses: actions/upload-artifact@master with: name: public path: public deploy: runs-on: ubuntu-latest name: Deploy to hakozaru.com needs: build steps: - name: Checkout Repo uses: actions/checkout@master - name: Download Artifact uses: actions/download-artifact@master with: name: public - name: Deploy to Firebase uses: w9jds/firebase-action@master with: args: deploy --only hosting env: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
-
masterへpushする
これだけ
GitHubだけで全て完結するうえに、結構いろんなことができそうなのでかなり遊べそうな印象
無料 & privateでもそこそこ使えるのでマジですごい
ジョブ毎にファイルを共有できないので、アーティファクトupload/downloadを使ってbuildの生成物の共有を行っている以外変わったことをやっていない
秘匿情報はリポジトリのSettings => Secretsから登録すると secrets.XXXX
で参照することができるので安心
Firebaseのtokenは手元で firebase login:ci
して取得した
あと、Actionが失敗するとその都度メールが来てうざかったので、Actionsの通知設定やっとくといいと思う
GitHubアカウントのSettings => Notificationsの一番下にあるGitHub Actionsのチェックボックスを外す
もっと細かく調べてまとめようかと思ったけど、公式ドキュメントがとても見やすいのでやめた
時間は節約していきましょう。人生はそこまで長くない。