A GitHub Action to deploy firebase hosting and functions together.
- Make sure you have the
firebase.jsonfile in the root repository, or set a custom path to look for it using theconfiginput. - Set the
workloadIdentityProviderandserviceAccountinputs to authenticate to Google Cloud. Create these values by following the guides on Setting up Workload Identity Federation. Alternatively, you can try using the CLI @sws2apps/github-gcloud-cli to automate the creation of these values. - Set the project name in the
projectinput.
name: Deploy to Firebase on: push: branches: - main permissions: read-all jobs: main: name: Build and Deploy runs-on: ubuntu-latest permissions: contents: 'read' id-token: 'write' steps: - name: Checkout uses: actions/checkout@v3 - name: Deploy to Firebase uses: sws2apps/firebase-deployment@main #consider using pin for dependabot auto update with: workloadIdentityProvider: ${{ secrets.WORKLOAD_IDENTITY_PROVIDER }} serviceAccount: ${{ secrets.SERVICE_ACCOUNT }} node-version: 18 #optional, node-version you want to use following the Semantic Versioning Specification, default to current config: 'frontend/firebase.json' #optional function: true #optional & boolean hosting: true #optional & boolean project: my-firebase-project #required