name: CI on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest steps: - name: Install system dependencies run: apt-get update && apt-get install -y jq unzip xz-utils curl git - name: Checkout uses: actions/checkout@v4 - name: Setup Flutter uses: subosito/flutter-action@v2 with: flutter-version: '3.x' channel: stable - name: Fix git safe directory run: git config --global --add safe.directory '*' - name: Install dependencies run: flutter pub get - name: Analyze run: flutter analyze --no-fatal-infos - name: Run tests run: flutter test build-apk: needs: test runs-on: ubuntu-latest if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Install system dependencies run: apt-get update && apt-get install -y jq unzip xz-utils curl git wget - name: Checkout uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: Setup Android SDK run: | mkdir -p /opt/android-sdk/cmdline-tools cd /tmp wget -q "https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" -O cmdline-tools.zip unzip -q cmdline-tools.zip mv cmdline-tools /opt/android-sdk/cmdline-tools/latest echo "ANDROID_HOME=/opt/android-sdk" >> $GITHUB_ENV echo "ANDROID_SDK_ROOT=/opt/android-sdk" >> $GITHUB_ENV echo "/opt/android-sdk/cmdline-tools/latest/bin" >> $GITHUB_PATH echo "/opt/android-sdk/platform-tools" >> $GITHUB_PATH - name: Accept Android licenses and install SDK components run: | export ANDROID_HOME=/opt/android-sdk yes | /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses || true /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-34" "build-tools;34.0.0" "platform-tools" - name: Setup Flutter uses: subosito/flutter-action@v2 with: flutter-version: '3.x' channel: stable - name: Fix git safe directory run: git config --global --add safe.directory '*' - name: Install dependencies run: flutter pub get - name: Build APK run: flutter build apk --release