From 270e3e380549263cc1880064d6cd6bdbf2ef5838 Mon Sep 17 00:00:00 2001 From: robot Date: Sun, 2 Aug 2026 23:17:50 +0000 Subject: [PATCH] fix(ci): use subosito/flutter-action instead of manual curl (was failing) - Revert to subosito/flutter-action@v2 which works on this act runner - Manual curl approach fails on the runner; subosito works with caching - Keep parallel lint+test, auto-format, no redundant build gates --- .gitea/workflows/ci.yml | 88 +++++++++++++---------------------------- 1 file changed, 28 insertions(+), 60 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 1179599..e0de838 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -10,7 +10,9 @@ # Each step is a separate shell. We export PATH="$PWD/flutter/bin:$PATH" in # every step that uses flutter/dart commands. # -# Flutter 3.44.0 ships Dart 3.12.0, satisfying pubspec sdk: ^3.11.5 constraint. +# subosito/flutter-action works on this runner — use it where possible for +# caching and speed. For build-android we still need manual JDK + Android SDK +# setup since actions/setup-java is GitHub-specific. name: CI @@ -28,9 +30,8 @@ concurrency: group: ${{ gitea.workflow }}-${{ gitea.ref }} cancel-in-progress: true -# ── Reusable setup block ────────────────────────────────────────── -# Each job downloads Flutter + dependencies independently because -# act/Gitea runners do not persist volumes between jobs. +env: + FLUTTER_VERSION: "3.44.0" jobs: # ── Stage 1: Lint & static analysis ────────────────────────────── @@ -42,34 +43,23 @@ jobs: uses: actions/checkout@v4 - name: Setup Flutter - run: | - set -e - curl -fsSL "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.44.0-stable.tar.xz" \ - -o /tmp/flutter.tar.xz - tar -xf /tmp/flutter.tar.xz -C "$PWD" - export PATH="$PWD/flutter/bin:$PATH" - flutter --version + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + cache: true - name: Install dependencies - run: | - export PATH="$PWD/flutter/bin:$PATH" - flutter pub get + run: flutter pub get - name: Generate stubs (lint gate support) if: hashFiles('theme.json') == '' - run: | - export PATH="$PWD/flutter/bin:$PATH" - python3 ci_stub_gen.py + run: python3 ci_stub_gen.py - name: Analyze Dart code - run: | - export PATH="$PWD/flutter/bin:$PATH" - flutter analyze --fatal-warnings + run: flutter analyze --fatal-warnings - name: Auto-format source - run: | - export PATH="$PWD/flutter/bin:$PATH" - dart format lib/ test/ + run: dart format lib/ test/ # ── Stage 1 (parallel): Unit & widget tests ────────────────────── @@ -81,28 +71,19 @@ jobs: uses: actions/checkout@v4 - name: Setup Flutter - run: | - set -e - curl -fsSL "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.44.0-stable.tar.xz" \ - -o /tmp/flutter.tar.xz - tar -xf /tmp/flutter.tar.xz -C "$PWD" - export PATH="$PWD/flutter/bin:$PATH" - flutter --version + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + cache: true - name: Install dependencies - run: | - export PATH="$PWD/flutter/bin:$PATH" - flutter pub get + run: flutter pub get - name: Generate stubs (lint gate support) - run: | - export PATH="$PWD/flutter/bin:$PATH" - python3 ci_stub_gen.py + run: python3 ci_stub_gen.py - name: Run tests - run: | - export PATH="$PWD/flutter/bin:$PATH" - flutter test --reporter=expanded + run: flutter test --reporter=expanded # ── Stage 3: Android build ────────────────────────────────────── @@ -126,13 +107,10 @@ jobs: java -version - name: Setup Flutter - run: | - set -e - curl -fsSL "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.44.0-stable.tar.xz" \ - -o /tmp/flutter.tar.xz - tar -xf /tmp/flutter.tar.xz -C "$PWD" - export PATH="$PWD/flutter/bin:$PATH" - flutter --version + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + cache: true - name: Install Android SDK command-line tools run: | @@ -147,41 +125,31 @@ jobs: sdkmanager "platform-tools" "platforms;android-35" "build-tools;35.0.0" - name: Pre-cache Android platform artifacts - run: | - export PATH="$PWD/flutter/bin:$PATH" - flutter precache --android + run: flutter precache --android - name: Accept Android SDK licenses run: | yes | "${HOME}/android-sdk/cmdline-tools/latest/bin/sdkmanager" --licenses || true - name: Install dependencies - run: | - export PATH="$PWD/flutter/bin:$PATH" - flutter pub get + run: flutter pub get - name: Generate stubs (lint gate support) - run: | - export PATH="$PWD/flutter/bin:$PATH" - python3 ci_stub_gen.py + run: python3 ci_stub_gen.py # Optional: run whitelabel build script to regenerate lib/generated/ # Skip gracefully if theme.json is missing or script fails - name: Run whitelabel build script if: hashFiles('theme.json') != '' - run: | - export PATH="$PWD/flutter/bin:$PATH" - python3 build_whitelabel.py + run: python3 build_whitelabel.py - name: Build APK (release) run: | - export PATH="$PWD/flutter/bin:$PATH" export JAVA_HOME="$HOME/jdk" flutter build apk --release - name: Build App Bundle (release) run: | - export PATH="$PWD/flutter/bin:$PATH" export JAVA_HOME="$HOME/jdk" flutter build appbundle --release