- web design -

blog

GitHub ActionsでサクッとFirebase Hostingに自動ビルド→デプロイしてみる[CI/CD – Vue.js]

Git

こんにちは、ma-ya’s CREATE[まーやずくりえいと]です。ご無沙汰です。

 

ただいま深夜の3時ですが全く眠れないので先日Vue.jsで制作したしょうもないWEBアプリをCI/CD化してみました。

 

Vue.jsプロジェクトをGitHubにプッシュしたらビルド→Firebase Hostingへデプロイまでの自動化

 

最近流行りのCI/CD技術。

 

デザイナーの自分からするとまたわけのわかんねえもんが出てきたという感じですが、そうも言ってられないのでなるべく敷居の低そうなところから挑戦してみようと思った次第です。

 

やってみればあら意外と簡単。といっても先人たちの記事の受け売りですがね。

というわけで順を追って説明していきましょう。

 

つってもやることはたったの3ステップです。

かかった時間は調べる時間も入れてたった15分ほど。

 

 

①FirebaseのトークンIDを確認する

 

リポジトリ内で以下のコマンドを入力しましょう。

 

firebase login:ci

 

するとブラウザでFirebaseへのログインを求められます。

ログイン後、コマンド上では以下のような画面が表示されます。

 

firebase login:ci

 

ここのぼかしてる部分がトークンです。

これをひかえておきましょう。

 

 

②GitHubプロジェクトのシークレット変数にトークンを登録

 

リポジトリ→setting→secrets→New repository secretに移動

 

github

 

変数を登録(変数名はFIREBASE_TOKEN)して「Add secret」

 

github

 

 

③ワークフローを登録する

 

※ワークフローとはざっくり言うとプッシュしたときに何をするの?(何のコマンドでどんな処理をするの?)ということです。

 

GitHubリポジトリの「Actions」 → 「Set up a workflow yourself」 を開いて↓のコードをまるっとコピペ

github
github

 

 

name: CI

on: [push]

jobs:
  FrontDeploy:
    name: FrontDeploy
    runs-on: ubuntu-latest
    steps:
    - name: Checkout Repo
      uses: actions/checkout@master
    - name: setup Node
      uses: actions/setup-node@v1
      with: 
        node-version: 10.x
        registry-url: 'https://registry.npmjs.org'
    - name: Install Dependencies
      run: npm install
    - name: Build
      run: npm run build
    - name: deploy to Firebase Hosting
      run: |
        firebase deploy --token=${{ secrets.FIREBASE_TOKEN }}

 

ビルドとデプロイコマンドは各自の環境に合わせてください。

最後の黄文字「FIREBASE_TOKEN」が先ほどシークレット変数に登録したトークンですね。

ここから変数で呼び出した値を引数として、デプロイコマンドを実行させるわけです。自動で。

 

 

編集したmain.ymlファイルをコミット

 

ファイルを「start commit」したら完了。

コミットメッセージは勝手に入ります。

 

github

 

 

ymlに詳しくないので何とも言えないですが、Vue.jsプロジェクトではなくても方法は大差ない(ハズ)。

このあとは適当にファイルをプッシュすると、Actionsページで何やら処理が始まります。

 

中を見てみるとymlファイルで登録したステップが順次実行されているはず。

ビルド→デプロイが成功すれば緑のチェックマークがつきます。

 

github

 

思いっきり最初の二回は失敗してますがご愛敬。

 

 

[注意]ymlの編集はGitHub管理画面上から行う

 

デプロイ失敗などでymlファイルを見直す場合はローカルで編集してもプッシュができないようです。

なのでymlを編集する場合はGitHubのファイル編集から行うとよさげ。

ちなみにymlファイルは文法トンマナが厳しいのでそこも注意…

 

 

というわけで意外と簡単にCI/CDに触れることができました。

いろんな技術が出てきてもうおじさん大変ですよ。。

 

 

[参考] GitHub ActionsでFirebaseにデプロイする