Skip to content

feat: Add CI/CD workflows for PR builds, main branch, and TestFlight deployment#6

Merged
GitchalWoo merged 10 commits intomainfrom
infra/mpt-14510-add-pr-builds
Nov 3, 2025
Merged

feat: Add CI/CD workflows for PR builds, main branch, and TestFlight deployment#6
GitchalWoo merged 10 commits intomainfrom
infra/mpt-14510-add-pr-builds

Conversation

@HalilSWO
Copy link
Collaborator

@HalilSWO HalilSWO commented Oct 29, 2025

Summary

This PR adds a complete CI/CD workflow system including:

  • ✅ PR build workflow (lint + tests on Ubuntu)
  • ✅ Main branch CI with automatic iOS build verification
  • ✅ iOS build workflow (verification without deployment)
  • ✅ iOS TestFlight deployment workflow (complete deployment pipeline)
  • ✅ Reusable build-test workflow for DRY
  • ✅ TestFlight GitHub environment created
  • ✅ Comprehensive documentation in CLAUDE.md and README.md
  • ✅ TestFlight setup checklist

Workflows

PR Build Workflow

  • Triggers: Pull requests to main
  • Duration: ~2-5 minutes
  • Runner: Ubuntu (cost-effective)
  • Purpose: Fast validation without expensive iOS builds
  • Tests this PR! 🎯

Main Branch CI Workflow

  • Triggers: Push to main
  • Duration: ~8-9 minutes
  • Runners: Ubuntu (validation) + macOS-14 (iOS build)
  • Purpose: Ensures main branch always passes tests AND has working iOS build

iOS Build Workflow

  • Triggers: Automatic on main + Manual
  • Duration: ~5 minutes
  • Purpose: Build verification without deployment
  • No secrets required

iOS TestFlight Workflow

  • Triggers: Manual only
  • Duration: ~20 minutes
  • Purpose: Complete deployment to TestFlight
  • Requires: TestFlight environment secrets (15 total)

Cost Optimization

  • PR builds: Free (Ubuntu only)
  • Main builds: ~$0.16 per push (includes iOS build verification)
  • iOS builds: Automatic on main, manual elsewhere
  • TestFlight: Manual only (deliberate deployments)

Next Steps After Merge

  1. Configure 15 secrets in TestFlight environment (see .github/TESTFLIGHT_SETUP.md)
  2. Optionally add required reviewers to TestFlight environment
  3. Test iOS TestFlight deployment workflow manually

Testing

This PR will test the PR build workflow automatically when created! Check the Actions tab.

…nd TestFlight deployment

- Add PR build workflow (lint + tests on Ubuntu)
- Add main branch CI with automatic iOS build verification
- Add iOS build workflow (verification without deployment)
- Add iOS TestFlight deployment workflow (complete deployment pipeline)
- Add reusable build-test workflow for DRY
- Create TestFlight GitHub environment
- Add comprehensive documentation in CLAUDE.md and README.md
- Add TestFlight setup checklist

Workflows:
- PR builds: Fast validation on Ubuntu (~2-5 min)
- Main CI: Validation + iOS build on every push (~25-35 min)
- iOS Build: Automatic on main + manual trigger for verification
- iOS TestFlight: Manual deployment with version bumping and signing
- Migrate from .eslintrc.js to eslint.config.js (ESLint v9 requirement)
- Remove deprecated .eslintignore file (now using ignores in flat config)
- Maintain all existing linting rules and ignore patterns
- Add Colors constants to avoid color literals in components
- Fix color literal warning in App.tsx by using Colors.background
- ESLint now passes with zero warnings
- Add detailed test coverage summary with percentages table
- Show test results breakdown (statements, branches, functions, lines)
- Add verbose test output for better visibility
- Improve PR summary to clearly indicate iOS build will run on main
- Add step-by-step next steps in PR summary
- Clarify TestFlight deployment is manual trigger only
- Add 'json-summary' to coverageReporters in jest.config.js
- Add collectCoverageFrom to include src files and exclude tests
- This fixes the "No coverage reports generated" message in CI
- Coverage summary table will now display actual test coverage percentages
@HalilSWO HalilSWO changed the title feat: Add comprehensive CI/CD workflows for PR builds, main branch, and TestFlight deployment feat: Add CI/CD workflows for PR builds, main branch, and TestFlight deployment Oct 29, 2025
- Remove pr-summary job from pr-build.yml (was showing as extra check)
- Enhance reusable-build-test summary to include iOS build info
- Now shows single 'Validate PR' check instead of two
- Summary still displays coverage, test results, and iOS info
Copy link
Collaborator

@GitchalWoo GitchalWoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, wondering about naming the pipelines, but for now it is ok

@GitchalWoo GitchalWoo merged commit 510003e into main Nov 3, 2025
3 checks passed
@GitchalWoo GitchalWoo deleted the infra/mpt-14510-add-pr-builds branch November 3, 2025 15:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants