This Action for firebase-tools enables arbitrary actions with the firebase
command-line client.
args
- Required. This is the arguments you want to use for thefirebase
cli
-
FIREBASE_TOKEN
- Required. The token to use for authentication. This token can be aquired through thefirebase login:ci
command. -
PROJECT_ID
- Optional. To specify a specific project to use for all commands, not required if you specify a project in your.firebaserc
file. -
PROJECT_PATH
- Optional. The path tofirebase.json
if it doesn't exist at the root of your repository. e.g../my-app
To authenticate with Firebase, and deploy to Firebase Hosting:
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 build-prod
- 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
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
If you have multiple hosting environments you can specify which one in the args line.
e.g. args: deploy --only hosting:[environment name]
The Dockerfile and associated scripts and documentation in this project are released under the MIT License.
If you decide to do seperate jobs for build and deployment (which is probably advisable), then make sure to clone your repo as the Firebase-cli requires the firebase repo to deploy (specifically the firebase.json
)