Skip to content

Remove iOS example app files and update dependencies #1

Remove iOS example app files and update dependencies

Remove iOS example app files and update dependencies #1

Workflow file for this run

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/