This folder contains all documentation for the CI/CD setup using GitHub Actions + Fastlane + Match.
- QUICK_START.md - Start here! Get up and running in 10 minutes
- SETUP.md - Complete step-by-step setup guide
- SECRETS_CHECKLIST.md - Checklist for configuring GitHub Secrets
- MIGRATION_SUMMARY.md - What changed and why
- Read QUICK_START.md (5 min read)
- Follow the 6 steps in the quick start guide
- Push to
devbranch - Watch your app deploy to TestFlight! 🎉
This repository uses:
- GitHub Actions - Automated CI/CD pipeline
- Fastlane - iOS/Android build automation
- Fastlane Match - Certificate and provisioning profile management
- Flutter - Cross-platform app framework
workflows/deploy.yml- Main deployment workflow (iOS + Android)
| Secret | Purpose |
|---|---|
MATCH_PASSWORD |
Decrypt Match certificates |
MATCH_DEPLOY_KEY |
SSH access to Match repo |
APP_STORE_CONNECT_KEY_ID |
App Store Connect API authentication |
APP_STORE_CONNECT_ISSUER_ID |
App Store Connect API authentication |
APP_STORE_CONNECT_API_KEY_BASE64 |
App Store Connect API key file |
| Secret | Purpose |
|---|---|
ANDROID_KEYSTORE_BASE64 |
Android app signing keystore |
ANDROID_KEYSTORE_PASSWORD |
Keystore password |
ANDROID_KEY_PASSWORD |
Key password |
GOOGLE_PLAY_SERVICE_ACCOUNT_JSON_BASE64 |
Play Store API access |
See SECRETS_CHECKLIST.md for detailed instructions.
| Branch | Action | Result |
|---|---|---|
dev |
Push | Deploy to TestFlight + Play Store Internal Track |
- Bundle ID:
com.ignitech.yonoBakrieApp - Team ID:
U7X5T2V3HP - Apple ID:
ignicoina@gmail.com
Push to dev
↓
GitHub Actions triggered
↓
Setup Ruby + Flutter
↓
Install dependencies
↓
Fastlane Match (get certificates)
↓
Build IPA with gym
↓
Upload to TestFlight
↓
✅ Done!
Push to dev
↓
GitHub Actions triggered
↓
Setup Java + Flutter
↓
Install dependencies
↓
Build AAB
↓
Upload to Play Store (Internal)
↓
✅ Done!
cd ios
export MATCH_PASSWORD="your-password"
export ASC_KEY="$(cat AuthKey_*.p8 | base64)"
export ASC_KEY_ID="your-key-id"
export ASC_ISSUER_ID="your-issuer-id"
export BUNDLE_IDENTIFIER="com.ignitech.yonoBakrieApp"
export TEAM_ID="U7X5T2V3HP"
bundle exec fastlane build_upload_testflightcd android
bundle exec fastlane internal- GitHub Actions: https://github.com/your-repo/actions
- TestFlight: https://appstoreconnect.apple.com/apps
- Play Console: https://play.google.com/console
- Check the logs: Go to Actions → Click the failed workflow
- Look for red ❌ step
- Common issues:
- Missing/incorrect secrets
- Expired certificates
- Bundle ID mismatch
# Test SSH access
ssh -T git@github.com
# Regenerate certificates
cd ios
fastlane match nuke distribution # WARNING: Deletes existing certs!
fastlane match appstoreVerify your API key:
cd ios
bundle exec fastlane run app_store_connect_api_key \
key_id:"$ASC_KEY_ID" \
issuer_id:"$ASC_ISSUER_ID" \
key_content:"$(cat AuthKey_*.p8)"| Date | Change | Author |
|---|---|---|
| 2025-10-06 | Migrated to Fastlane Match | Claude |
| 2025-10-05 | Initial manual code signing setup | Previous dev |
- Match Repository:
eplnh/ticketing-app(private) - Certificates: Stored in Match repo, encrypted with
MATCH_PASSWORD - Auto-deployment: Enabled for
devbranch - Manual deployment: Use GitHub Actions "Run workflow" button
When making changes to CI/CD:
- Test locally first
- Update relevant documentation
- Create a PR with clear description
- Tag @team-leads for review
- Check documentation in this folder
- Contact DevOps team
- Create an issue in the repo
Last Updated: October 6, 2025 Maintained By: DevOps Team