Github actionsでfirebase hostingへdeployする仕組みを導入してみた
どうもどうも
下着の前後を2日連続間違えて着ていたZEN SELECTハマさんです
#疲れてるのか?
#マジで老いているのでは疑惑
今回はがっつり技術のお話しです
ハマさん作成のボドゲサイトは全てnuxt.jsで作成してfirebase hostingを利用してインターネットに公開しています
普段はハマさんのパソコンで開発してそのままコマンド叩いてデプロイしているんだけど、たまにパソコンのない場所で気づいた誤字を直したかったりするときにgithubで直接編集してそのまま公開したくなったので構築してみました
既にgithub で管理してるプロジェクトにCIの設定をしていきます
Firebaseのtokenを取得
CIでdeployするときに利用するtokenを取得します
ここで取得したtokenは今回CIの設定をするプロジェクト以外にもアクセスできるので取り扱いは注意です
firebase login:ci
上記コマンドをターミナルで入力すると、ブラウザが立ち上がり(立ち上がらない場合はターミナル上に表示されるURLにアクセス)googleアカウントの認証を行います
認証後ターミナルにtokenが表示されます
Githubの環境変数にtokenを登録
ブラウザでCIを設定したいプロジェクトのGithubのページにアクセスし、settings > secrets へ画面遷移し、New repository secret ボタンを押します
NameにFIREBASE_TOKENと入力し、Valueには上記で取得したtokenを入力してから Add secretで保存します
Github actions 用の設定ファイルを追加
プロジェクトのディレクトリに .github/workflows/deploy.ymlという名前でymlファイルを作成します
# https://github.com/marketplace/actions/github-action-for-firebase
name: Build and Deploy
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Install Dependencies
run: npm install
- name: Build
run: npm run generate
- name: Archive Production Artifact
uses: actions/upload-artifact@master
with:
name: dist
path: dist
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: dist
path: dist
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
設定ファイルはこちらを参考にしています
ymlファイルを作成したらcommitしてpushします
pushするとActionsが動き出し Build と Deploy が実行されます
手元のプロジェクトだとpushしてから2分30秒くらいでdeployまで完了しました
これで簡単な誤字修正くらいはスマフォでも対応できるようになった!!
この記事が気に入ったらサポートをしてみませんか?