From 3073e44cec6400fb57e8d5058a2b9a64712e4090 Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 21 May 2026 08:15:30 -0700 Subject: [PATCH 1/5] Add GH actions workflow --- .github/workflows/ci.yml | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2d5ec62 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + analyze-and-test: + name: Analyze & Test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - uses: subosito/flutter-action@v2 + with: + flutter-version: "3.24.0" + channel: stable + cache: true + + - name: Install Melos + run: dart pub global activate melos + + - name: Bootstrap (resolve dependencies) + run: melos bootstrap + + - name: Analyze + run: dart analyze + + - name: Format check (changed Dart files) + run: | + if [ "${{ github.event_name }}" = "pull_request" ]; then + base=$(git merge-base ${{ github.event.pull_request.base.sha }} HEAD) + else + base="${{ github.event.before }}" + if [ "$base" = "0000000000000000000000000000000000000000" ] || [ -z "$base" ]; then + base="HEAD^1" + fi + fi + changed=$(git diff --name-only --diff-filter=ACMR "$base"..HEAD -- '*.dart') + if [ -n "$changed" ]; then + echo "Checking format of $(echo "$changed" | wc -l) changed Dart file(s):" + echo "$changed" + dart format --output=none --set-exit-if-changed $changed + else + echo "No changed Dart files to check." + fi + + - name: Test + run: melos run test From 72aa9f4d1a851e35c2a4e8b0f39400a314102ab7 Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 21 May 2026 08:20:59 -0700 Subject: [PATCH 2/5] Change flutter-version to 3.38.1 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d5ec62..7d9e5e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - uses: subosito/flutter-action@v2 with: - flutter-version: "3.24.0" + flutter-version: "3.38.1" channel: stable cache: true From 971ae9b7e49ef2c94be83ed3fed7123bf2d31114 Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 21 May 2026 08:25:34 -0700 Subject: [PATCH 3/5] ci: Have melos run flutter analyze seuqentially on the packages --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d9e5e2..db200fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: run: melos bootstrap - name: Analyze - run: dart analyze + run: melos exec -c 1 -- flutter analyze - name: Format check (changed Dart files) run: | From 37a1b6682a0c17013cfc14f748a3a5687d97e78c Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 21 May 2026 09:33:55 -0700 Subject: [PATCH 4/5] Build example app in CI workflow --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db200fe..74cef04 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,3 +52,7 @@ jobs: - name: Test run: melos run test + + - name: Build example app (linux) + run: flutter build linux --release + working-directory: apps/example From 7989123c3ecb279f0228bfb35b1ffd24bc044bce Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 21 May 2026 20:29:58 -0700 Subject: [PATCH 5/5] Remove CI step to build example app --- .github/workflows/ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74cef04..db200fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,7 +52,3 @@ jobs: - name: Test run: melos run test - - - name: Build example app (linux) - run: flutter build linux --release - working-directory: apps/example