Skip to content

eplnh/ticketing-app

Repository files navigation

CI/CD Documentation

📚 Documentation Index

This folder contains all documentation for the CI/CD setup using GitHub Actions + Fastlane + Match.

Quick Navigation

🚀 I'm New Here - Where Do I Start?

  1. Read QUICK_START.md (5 min read)
  2. Follow the 6 steps in the quick start guide
  3. Push to dev branch
  4. Watch your app deploy to TestFlight! 🎉

🔧 What's This Setup?

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

📁 Workflow Files

  • workflows/deploy.yml - Main deployment workflow (iOS + Android)

🔑 Required Secrets

iOS TestFlight (5 secrets)

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

Android Play Store (4 secrets)

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.

🎯 Deployment Triggers

Branch Action Result
dev Push Deploy to TestFlight + Play Store Internal Track

📱 App Configuration

  • Bundle ID: com.ignitech.yonoBakrieApp
  • Team ID: U7X5T2V3HP
  • Apple ID: ignicoina@gmail.com

🏗️ Architecture

iOS Flow

Push to dev
  ↓
GitHub Actions triggered
  ↓
Setup Ruby + Flutter
  ↓
Install dependencies
  ↓
Fastlane Match (get certificates)
  ↓
Build IPA with gym
  ↓
Upload to TestFlight
  ↓
✅ Done!

Android Flow

Push to dev
  ↓
GitHub Actions triggered
  ↓
Setup Java + Flutter
  ↓
Install dependencies
  ↓
Build AAB
  ↓
Upload to Play Store (Internal)
  ↓
✅ Done!

🛠️ Local Testing

iOS

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_testflight

Android

cd android
bundle exec fastlane internal

📊 Monitoring

🆘 Troubleshooting

Build Fails on GitHub Actions

  1. Check the logs: Go to Actions → Click the failed workflow
  2. Look for red ❌ step
  3. Common issues:
    • Missing/incorrect secrets
    • Expired certificates
    • Bundle ID mismatch

Match Authentication Error

# Test SSH access
ssh -T git@github.com

# Regenerate certificates
cd ios
fastlane match nuke distribution  # WARNING: Deletes existing certs!
fastlane match appstore

App Store Connect API Error

Verify 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)"

📖 Additional Resources

🔄 Update History

Date Change Author
2025-10-06 Migrated to Fastlane Match Claude
2025-10-05 Initial manual code signing setup Previous dev

📝 Notes

  • Match Repository: eplnh/ticketing-app (private)
  • Certificates: Stored in Match repo, encrypted with MATCH_PASSWORD
  • Auto-deployment: Enabled for dev branch
  • Manual deployment: Use GitHub Actions "Run workflow" button

🤝 Contributing

When making changes to CI/CD:

  1. Test locally first
  2. Update relevant documentation
  3. Create a PR with clear description
  4. Tag @team-leads for review

💬 Need Help?

  • Check documentation in this folder
  • Contact DevOps team
  • Create an issue in the repo

Last Updated: October 6, 2025 Maintained By: DevOps Team

About

A ticketing mobile application for Android and iOS for stand-up comedy event.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages