Skip to content

Instantly share code, notes, and snippets.

@apgapg
Last active October 7, 2023 16:23
Show Gist options
  • Save apgapg/76e5c251daa7ce53291164479f43e61c to your computer and use it in GitHub Desktop.
Save apgapg/76e5c251daa7ce53291164479f43e61c to your computer and use it in GitHub Desktop.
Github Workflow for Building, Releasing Flutter web app to Github Pages and Firebase Hosting
# This is a basic workflow to help you get started with Actions
name: Build, Release app to Github Pages and Firebase Hosting
# name: Test, Build and Release apk
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches:
- master
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: subosito/flutter-action@v1
with:
channel: 'dev'
- name: 'Run flutter pub get'
run: flutter pub get
# - name: 'Run Test(s)'
# run: flutter test
- name: Enable flutter web
run: flutter config --enable-web
- name: 'Build Web App'
run: flutter build web
- name: deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.TOKEN }}
publish_dir: ./build/web
- name: Deploy to Firebase Hosting
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
@UpmindAI
Copy link

I was able to fix the issue by adding this deployment script instead of the other one:

  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: web-build
          path: build/web
      - name: Deploy to Firebase
        uses: w9jds/firebase-action@master
        with:
          args: deploy --only hosting
        env:
          GCP_SA_KEY: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_PAPERWIZ1 }}

I actually believe this made the difference:

        uses: actions/download-artifact@master
        with:
          name: web-build
          path: build/web

It was uploading the artifacts but not downloading them for deployment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment