/
opt
/
canhelp
/
.github
/
workflows
/
/opt/canhelp/.github/workflows
mkdir
upload
Name
Size
Mode
Actions
mobile-android.yml
3761
0644
edit
dl
rm
mobile-ios.yml
4294
0644
edit
dl
rm
Edit:
/opt/canhelp/.github/workflows/mobile-android.yml
(3761B)
name: Android — Build & Upload Play Store on: push: tags: - 'v*' # trigger on version tags workflow_dispatch: # manual trigger from GitHub UI jobs: build-android: name: Build & Upload to Play Store (Internal) runs-on: ubuntu-latest steps: # ── Checkout ────────────────────────────────────────────── - name: Checkout code uses: actions/checkout@v4 # ── Java ────────────────────────────────────────────────── - name: Setup Java 17 uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' # ── Flutter ─────────────────────────────────────────────── - name: Setup Flutter uses: subosito/flutter-action@v2 with: flutter-version: '3.38.3' channel: 'stable' cache: true - name: Flutter dependencies working-directory: apps/mobile run: flutter pub get # ── Android keystore ────────────────────────────────────── - name: Decode keystore working-directory: apps/mobile/android env: KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} run: echo -n "$KEYSTORE_BASE64" | base64 --decode > app/canhelp-release.jks - name: Create key.properties working-directory: apps/mobile/android env: KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} run: | cat > key.properties <<EOF storePassword=$KEYSTORE_PASSWORD keyPassword=$KEY_PASSWORD keyAlias=$KEY_ALIAS storeFile=canhelp-release.jks EOF # ── dart_defines for CI ─────────────────────────────────── - name: Create dart_defines.ci.json working-directory: apps/mobile env: API_URL: ${{ secrets.PRODUCTION_API_URL }} GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }} GOOGLE_IOS_CLIENT_ID: ${{ secrets.GOOGLE_IOS_CLIENT_ID }} run: | cat > config/dart_defines.ci.json <<EOF { "API_URL": "$API_URL", "GOOGLE_CLIENT_ID": "$GOOGLE_CLIENT_ID", "GOOGLE_IOS_CLIENT_ID": "$GOOGLE_IOS_CLIENT_ID" } EOF # ── Ruby / Fastlane ─────────────────────────────────────── - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.2' - name: Install Fastlane gems working-directory: apps/mobile/android run: | bundle config set path vendor/bundle bundle install # ── Build & Upload ──────────────────────────────────────── - name: Build AAB & Upload to Play Store working-directory: apps/mobile/android env: PLAY_STORE_JSON_KEY: ${{ secrets.PLAY_STORE_JSON_KEY }} BUNDLE_GEMFILE: ${{ github.workspace }}/apps/mobile/android/Gemfile run: | echo "$PLAY_STORE_JSON_KEY" > fastlane/play-store-key.json bundle exec fastlane internal
Save
cmd:
run