name: billsplit CI # Relocated here from billsplit/.github/workflows/ci.yaml when the app moved # into this monorepo — GitHub only reads workflows from the repository root, # so the nested copy would have been inert. on: push: branches: [main] paths: - "billsplit/**" - ".github/workflows/billsplit-ci.yml" pull_request: branches: [main] paths: - "billsplit/**" - ".github/workflows/billsplit-ci.yml" defaults: run: working-directory: billsplit jobs: quality: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: channel: stable - run: flutter pub get - name: Format (fails on diff) run: dart format --set-exit-if-changed . - name: Analyze (infos are fatal) run: flutter analyze --fatal-infos - name: Tests with coverage run: flutter test --coverage # Runs from the repository root: every Python file in this repo lives # under python_pkg/, so the gate is a module there rather than a script # inside the app. It resolves billsplit/ from its own location. - name: Enforce 100% line coverage working-directory: . run: python3 -m python_pkg.billsplit_coverage