0
0

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.

GitHub ActionsでFirebaseにデプロイする

Posted at

GitHub Actionsを使ってFirebaseにホスティングとCloudFunctionsをデプロイする両方を書いてあるものがなかったので
備忘録も兼ねて簡単にまとめます

※ GitHub Actionsとは、リポジトリに対するプッシュやプルリクエスト、Issueの作成などのイベントをトリガーとして、
 事前にyamlファイルで設定した処理を実行する機能です。

yamlファイルの作成

リポジトリのルートに.githubというフォルダを作成し、その下にworkflowsというフォルダを作成します。
workflowsの下にyamlファイルを置きます。(ファイル名はなんでもOK)
[例]
sapmle/
 ├ .github/
   ├ workflows
      └ develop.yaml

yamlファイルの中身

develop.yaml

name: CI

# ブランチへのPUSHをトリガーとして発火する(この場合developブランチ)
on:
  push:
    branches: 
      - develop

jobs:
  deploy:
    runs-on: ubuntu-latest
 
    strategy:
     # マトリックスの定義。${{ matrix.XXX }}でファイル内で呼び出せる
      matrix:
        node-version: [13.x]
        
    steps:
    - name: Checkout Repository
      uses: actions/checkout@v2
    
    - name: Prepare Node Env
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}

    - name: install
      run: npm install

    - name: build
      run: npm run build

    - name: Deploy firebase hosting
      uses: w9jds/firebase-action@v1.1.0
      with:
        # ${{ secrets.XXX }} はGitHubのシークレットに設定した値。
        args: deploy --only hosting,firestore --project ${{ secrets.PROJECT_ID }} -f
      env:
        FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

    - name: Ready to deploy functions
      run: |
     # cloudfunctionsのフォルダに移動
        cd functions 
        npm install
    - name: Deploy firebase functions
      uses: w9jds/firebase-action@v1.1.0
      with:
        args: deploy --only functions --project ${{ secrets.PROJECT_ID }} -f
      env:
        FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

処理の中身
1 npm install で依存関係のインストール
2 ビルド
3 firebase にホスティング
4 CloudFunctionsのフォルダーに移動し、functionsをデプロイ

 

〜以下構文の解説〜

name

GitHub上のリポジトリのアクションページにワークフローの名前が表示される

on

ワークフローをトリガーするためのもの
複数のイベントを設定することも可能

job

ワークフローで実行される一連のステップ

steps

ジョブに紐づく一連のタスク

※細かい書き方は以下を参考
https://docs.github.com/ja/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions

まとめ

今回は最低限のデプロイの記述までですが、実際運用する場合にはCloudFunctionsの環境変数を設定するなど
必要なステップが増えると思いますので、適宜追加してもらえればと思います。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?