name: Build web app

on:
  push:
    branches: ["main"]
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Flutter
        uses: subosito/flutter-action@v2
        with:
          channel: "stable"
      - run: flutter --version

      - name: Cache pub dependencies
        uses: actions/cache@v4
        with:
          path: ${{ env.FLUTTER_HOME }}/.pub-cache
          key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
          restore-keys: ${{ runner.os }}-pub-

      - name: Download pub dependencies
        run: flutter pub get

      - name: Build Web App
        run: cd example && flutter build web --base-href=/${{ github.event.repository.name }}/

      - name: Deploy to GitHub Pages 🚀
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          folder: example/build/web
