π EAS Workflows Setup Checklist (LEGACY)
This checklist applies to an older EAS Workflows-based pipeline. The current pipeline is documented in deployment/mobile-deployment-guide.
π Overviewβ
This checklist will guide you through setting up the hybrid GitHub Actions + EAS Workflows deployment system for AttuneLogic Mobile.
30-45 minutes for complete setup
β Prerequisitesβ
Before you begin, ensure you have:
- Expo account with EAS access
- GitHub repository admin access
- Apple Developer account (for iOS)
- Google Play Developer account (for Android)
- Slack workspace (optional, for notifications)
π§ Step 1: EAS Configurationβ
1.1 Create EAS Workflow Filesβ
Files are already created at:
.eas/workflows/deploy-beta.ymlβ.eas/workflows/deploy-alpha.ymlβ.eas/workflows/deploy-production.ymlβ
1.2 Update eas.jsonβ
File has been optimized with:
- Resource classes configured for each profile
- Android: AAB for alpha/production, APK for beta
- Submit configurations for TestFlight and Play Store
- Environment variables for each profile
Verify:
cat eas.json | jq '.build'
1.3 Connect GitHub Repositoryβ
- Go to https://expo.dev/accounts/[your-account]/settings/github
- Click "Install GitHub App"
- Select
attunelogic-mobilerepository - Authorize the connection
π Step 2: GitHub Secrets Configurationβ
2.1 Get Expo Access Tokenβ
- Visit: https://expo.dev/accounts/[your-account]/settings/access-tokens
- Click "Create token"
- Name:
github-actions-mobile - Scopes: Select all permissions
- Copy the token (you won't see it again!)
2.2 Add Secrets to GitHubβ
Go to: https://github.com/[org]/attunelogic-mobile/settings/secrets/actions
Add the following secrets:
-
EXPO_TOKEN= [your expo access token] -
EXPO_ACCOUNT= [your expo account slug, e.g., "ferda-tech"] -
SLACK_WEBHOOK_URL= [your slack webhook] (optional)
Verify:
# Check secrets are visible in GitHub UI (values won't be shown)
2.3 Verify GitHub Token Permissionsβ
The GITHUB_TOKEN is automatically provided, but verify permissions:
- Go to Settings β Actions β General
- Workflow permissions: Select "Read and write permissions"
- Enable: "Allow GitHub Actions to create and approve pull requests"
π± Step 3: EAS Build Configurationβ
3.1 Configure iOS Credentialsβ
# Run locally to set up iOS credentials
eas credentials --platform ios
- Select project
- Choose "Set up" for each profile (beta, alpha, production)
- Follow prompts to configure:
- Apple Team ID
- App Store Connect API Key
- Distribution certificates
- Provisioning profiles
3.2 Configure Android Credentialsβ
# Run locally to set up Android credentials
eas credentials --platform android
- Upload keystore or let EAS generate one
- Configure Google Play Service Account
- Set up for each profile (beta, alpha, production)
3.3 Verify Credentialsβ
# Check credentials are configured
eas credentials --platform ios
eas credentials --platform android
ποΈ Step 4: Initial Buildsβ
4.1 Create Initial Beta Buildβ
This creates the first native build that subsequent repacks can use:
# Create initial iOS beta build
eas build --platform ios --profile beta
# Create initial Android beta build
eas build --platform android --profile beta
- iOS beta build completed
- Android beta build completed
- Note the build IDs for reference
4.2 Create Initial Alpha Buildβ
# Create initial iOS alpha build
eas build --platform ios --profile alpha
# Create initial Android alpha build
eas build --platform android --profile alpha
- iOS alpha build completed
- Android alpha build completed
4.3 Submit Initial Alpha Buildsβ
# Submit iOS to TestFlight
eas submit --platform ios --profile alpha --latest
# Submit Android to Play Internal Testing
eas submit --platform android --profile alpha --latest
- iOS submitted to TestFlight
- Android submitted to Play Internal Testing
π Step 5: Workflow Testingβ
5.1 Test Beta Workflowβ
-
Create test branch:
git checkout -b feature/test-eas-workflows
git commit --allow-empty -m "test: EAS workflows setup"
git push origin feature/test-eas-workflows -
Verify GitHub Actions creates PR to beta
-
Merge the PR
-
Verify EAS Workflow triggers
-
Check EAS dashboard for workflow execution
-
Confirm Slack notification (if configured)
-
Verify PR created to alpha
5.2 Test Fingerprintingβ
-
Make JS-only change:
# Edit a React component (no native changes)
git commit -m "feat: test repack optimization"
git push -
Merge through beta
-
Verify EAS Workflow uses repack (should be fast!)
-
Check build logs show "Repack" instead of "Build"
5.3 Test Native Buildβ
-
Make native change or use flag:
git commit --allow-empty -m "test: force native build [build]"
git push -
Merge through beta
-
Verify EAS Workflow triggers full build
-
Check build takes longer (~15-30 min)
π Step 6: Monitoring Setupβ
6.1 Bookmark Key URLsβ
- GitHub Actions:
https://github.com/[org]/attunelogic-mobile/actions - EAS Workflows:
https://expo.dev/accounts/[account]/projects/attunelogic-mobile/workflows - EAS Builds:
https://expo.dev/accounts/[account]/projects/attunelogic-mobile/builds - EAS Updates:
https://expo.dev/accounts/[account]/projects/attunelogic-mobile/updates - TestFlight:
https://appstoreconnect.apple.com - Play Console:
https://play.google.com/console
6.2 Configure Slack Notifications (Optional)β
- Create Slack incoming webhook
- Add to GitHub secrets as
SLACK_WEBHOOK_URL - Test notification by triggering a deployment
π Step 7: Documentation & Team Onboardingβ
7.1 Review Documentationβ
Ensure team reviews:
7.2 Team Trainingβ
Conduct training session covering:
- New deployment flow (GitHub β EAS)
- How fingerprinting works
- When repack vs build happens
- How to monitor deployments
- Emergency procedures
7.3 Update Team Processesβ
- Update deployment runbook
- Add EAS dashboard access for team
- Document emergency rollback procedures
- Set up on-call rotation (if applicable)
π§ͺ Step 8: End-to-End Validationβ
8.1 Full Pipeline Testβ
Run a feature through the entire pipeline:
-
Create feature branch
git checkout -b feature/e2e-test -
Make a change
# Add a simple UI change
git commit -m "feat: e2e pipeline test"
git push -
Verify progression:
- PR created to beta
- Merge and deploy to beta (via EAS Workflow)
- PR created to alpha
- Merge and deploy to alpha (via EAS Workflow)
- TestFlight/Play submission
- PR created to main
- (Optional) Deploy to production
-
Verify user experience:
- Install beta build
- Receive OTA update
- Check TestFlight build
- Verify Play Console listing
8.2 Rollback Testβ
Test rollback procedure:
- Identify previous update
- Run rollback:
eas update:republish \
--group [previous-update-group-id] \
--branch beta - Verify users receive rollback
β Completion Checklistβ
Infrastructureβ
- EAS Workflows files created
- GitHub Actions workflow configured
- eas.json optimized
- GitHub repository connected to EAS
Credentialsβ
- EXPO_TOKEN configured
- EXPO_ACCOUNT configured
- iOS credentials set up
- Android credentials set up
- SLACK_WEBHOOK_URL configured (optional)
Initial Buildsβ
- Beta iOS build created
- Beta Android build created
- Alpha iOS build created and submitted
- Alpha Android build created and submitted
Testingβ
- Beta workflow tested
- Fingerprinting/repack tested
- Native build tested
- Alpha workflow tested
- Full pipeline tested
- Rollback procedure tested
Documentationβ
- Team reviewed documentation
- Training session conducted
- Processes updated
- Monitoring URLs bookmarked
π You're Done!β
Your mobile deployment pipeline is now fully configured with:
β
GitHub Actions for PR orchestration
β
EAS Workflows for intelligent build optimization
β
Automatic fingerprinting and repack
β
TestFlight/Play Store automation
β
Monitoring via GitHub and EAS dashboards
β
Team documentation and training
π Troubleshootingβ
Common Setup Issuesβ
| Issue | Solution |
|---|---|
| EAS Workflow not triggering | Verify EXPO_TOKEN and EXPO_ACCOUNT secrets |
| Build failing | Check credentials: eas credentials --platform [ios|android] |
| GitHub PR not created | Verify GitHub token has write permissions |
| TestFlight submission fails | Check App Store Connect API key in EAS |
| Fingerprint always different | Verify no native dependencies changed between builds |
Need Help?β
- Check EAS Workflows Guide
- Review the current mobile deployment guide
- Check EAS Dashboard logs
- Contact #mobile-team on Slack
π Next Stepsβ
After setup, consider:
- Set up automated E2E tests with Maestro
- Configure staged rollouts in Play Console
- Set up error monitoring (Sentry)
- Create custom Slack notifications
- Document environment-specific testing procedures
π Maintenanceβ
Monthlyβ
- Review EAS Workflow execution times
- Check build success rates
- Review OTA update adoption rates
- Audit credentials expiration dates
Quarterlyβ
- Review and update documentation
- Conduct team training refresh
- Optimize workflow configurations
- Review and adjust resource classes
π Notesβ
Setup Date: _______________
Team Members Trained:
- _______________
- _______________
- _______________
Initial Build IDs:
- Beta iOS: _______________
- Beta Android: _______________
- Alpha iOS: _______________
- Alpha Android: _______________
Expo Account: _______________
Additional Notes:
Congratulations on setting up a production-ready mobile CI/CD pipeline! π