Remove iOS example app files and update dependencies #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Release | |
| on: | |
| push: | |
| branches: [ main, master ] | |
| tags: [ 'v*' ] | |
| pull_request: | |
| branches: [ main, master ] | |
| workflow_dispatch: | |
| env: | |
| FLUTTER_VERSION: '3.27.0' | |
| jobs: | |
| # Validate secrets exist | |
| check-secrets: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check required secrets | |
| run: | | |
| if [ -z "${{ secrets.COUNTLY_SERVER_URL }}" ]; then | |
| echo "⚠️ Warning: COUNTLY_SERVER_URL secret not set. Analytics will be disabled." | |
| else | |
| echo "✅ COUNTLY_SERVER_URL secret is configured" | |
| fi | |
| if [ -z "${{ secrets.COUNTLY_APP_KEY }}" ]; then | |
| echo "⚠️ Warning: COUNTLY_APP_KEY secret not set. Analytics will be disabled." | |
| else | |
| echo "✅ COUNTLY_APP_KEY secret is configured (masked)" | |
| fi | |
| continue-on-error: true | |
| # Android Build | |
| build-android: | |
| runs-on: ubuntu-latest | |
| needs: check-secrets | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Flutter | |
| uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: 'stable' | |
| - name: Install dependencies | |
| run: flutter pub get | |
| - name: Build APK (with encrypted analytics) | |
| env: | |
| COUNTLY_SERVER_URL: ${{ secrets.COUNTLY_SERVER_URL }} | |
| COUNTLY_APP_KEY: ${{ secrets.COUNTLY_APP_KEY }} | |
| run: | | |
| # Mask secrets in logs (GitHub does this automatically, but we double-check) | |
| echo "::add-mask::$COUNTLY_APP_KEY" | |
| echo "Building with analytics configured..." | |
| flutter build apk --release \ | |
| --dart-define=COUNTLY_SERVER_URL="$COUNTLY_SERVER_URL" \ | |
| --dart-define=COUNTLY_APP_KEY="$COUNTLY_APP_KEY" 2>&1 | grep -v "$COUNTLY_APP_KEY" || true | |
| - name: Build AppBundle (with encrypted analytics) | |
| env: | |
| COUNTLY_SERVER_URL: ${{ secrets.COUNTLY_SERVER_URL }} | |
| COUNTLY_APP_KEY: ${{ secrets.COUNTLY_APP_KEY }} | |
| run: | | |
| echo "::add-mask::$COUNTLY_APP_KEY" | |
| flutter build appbundle --release \ | |
| --dart-define=COUNTLY_SERVER_URL="$COUNTLY_SERVER_URL" \ | |
| --dart-define=COUNTLY_APP_KEY="$COUNTLY_APP_KEY" 2>&1 | grep -v "$COUNTLY_APP_KEY" || true | |
| - name: Upload APK | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-apk | |
| path: build/app/outputs/flutter-apk/app-release.apk | |
| # iOS Build (macOS required) | |
| build-ios: | |
| runs-on: macos-latest | |
| needs: check-secrets | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Flutter | |
| uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: 'stable' | |
| - name: Install dependencies | |
| run: flutter pub get | |
| - name: Build iOS (no codesign for testing) | |
| env: | |
| COUNTLY_SERVER_URL: ${{ secrets.COUNTLY_SERVER_URL }} | |
| COUNTLY_APP_KEY: ${{ secrets.COUNTLY_APP_KEY }} | |
| run: | | |
| echo "::add-mask::$COUNTLY_APP_KEY" | |
| flutter build ios --release --no-codesign \ | |
| --dart-define=COUNTLY_SERVER_URL="$COUNTLY_SERVER_URL" \ | |
| --dart-define=COUNTLY_APP_KEY="$COUNTLY_APP_KEY" 2>&1 | grep -v "$COUNTLY_APP_KEY" || true | |
| # Windows Build | |
| build-windows: | |
| runs-on: windows-latest | |
| needs: check-secrets | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Flutter | |
| uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: 'stable' | |
| - name: Install dependencies | |
| run: flutter pub get | |
| - name: Build Windows | |
| env: | |
| COUNTLY_SERVER_URL: ${{ secrets.COUNTLY_SERVER_URL }} | |
| COUNTLY_APP_KEY: ${{ secrets.COUNTLY_APP_KEY }} | |
| run: | | |
| $key = $env:COUNTLY_APP_KEY | |
| Write-Host "::add-mask::$key" | |
| flutter build windows --release ` | |
| --dart-define=COUNTLY_SERVER_URL="$env:COUNTLY_SERVER_URL" ` | |
| --dart-define=COUNTLY_APP_KEY="$key" 2>&1 | Select-String -Pattern $key -NotMatch | |
| - name: Upload Windows Build | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-build | |
| path: build/windows/x64/runner/Release/ | |
| # Linux Build | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| needs: check-secrets | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Linux dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev | |
| - name: Setup Flutter | |
| uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: 'stable' | |
| - name: Install dependencies | |
| run: flutter pub get | |
| - name: Build Linux | |
| env: | |
| COUNTLY_SERVER_URL: ${{ secrets.COUNTLY_SERVER_URL }} | |
| COUNTLY_APP_KEY: ${{ secrets.COUNTLY_APP_KEY }} | |
| run: | | |
| echo "::add-mask::$COUNTLY_APP_KEY" | |
| flutter build linux --release \ | |
| --dart-define=COUNTLY_SERVER_URL="$COUNTLY_SERVER_URL" \ | |
| --dart-define=COUNTLY_APP_KEY="$COUNTLY_APP_KEY" 2>&1 | grep -v "$COUNTLY_APP_KEY" || true | |
| - name: Upload Linux Build | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-build | |
| path: build/linux/x64/release/bundle/ | |
| # macOS Build | |
| build-macos: | |
| runs-on: macos-latest | |
| needs: check-secrets | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Flutter | |
| uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: 'stable' | |
| - name: Install dependencies | |
| run: flutter pub get | |
| - name: Build macOS | |
| env: | |
| COUNTLY_SERVER_URL: ${{ secrets.COUNTLY_SERVER_URL }} | |
| COUNTLY_APP_KEY: ${{ secrets.COUNTLY_APP_KEY }} | |
| run: | | |
| echo "::add-mask::$COUNTLY_APP_KEY" | |
| flutter build macos --release \ | |
| --dart-define=COUNTLY_SERVER_URL="$COUNTLY_SERVER_URL" \ | |
| --dart-define=COUNTLY_APP_KEY="$COUNTLY_APP_KEY" 2>&1 | grep -v "$COUNTLY_APP_KEY" || true | |
| - name: Upload macOS Build | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: macos-build | |
| path: build/macos/Build/Products/Release/ | |
| # Web Build | |
| build-web: | |
| runs-on: ubuntu-latest | |
| needs: check-secrets | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Flutter | |
| uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: 'stable' | |
| - name: Install dependencies | |
| run: flutter pub get | |
| - name: Build Web | |
| env: | |
| COUNTLY_SERVER_URL: ${{ secrets.COUNTLY_SERVER_URL }} | |
| COUNTLY_APP_KEY: ${{ secrets.COUNTLY_APP_KEY }} | |
| run: | | |
| echo "::add-mask::$COUNTLY_APP_KEY" | |
| flutter build web --release \ | |
| --dart-define=COUNTLY_SERVER_URL="$COUNTLY_SERVER_URL" \ | |
| --dart-define=COUNTLY_APP_KEY="$COUNTLY_APP_KEY" 2>&1 | grep -v "$COUNTLY_APP_KEY" || true | |
| - name: Upload Web Build | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: web-build | |
| path: build/web/ |