-
Notifications
You must be signed in to change notification settings - Fork 48
ci: optimize pipeline triggers and release workflow #75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Changes: - CI pipeline now only triggers on pull_request (removed push to main/develop) - Release workflow: skip waiting for build processing to avoid timeout issues - Release workflow: remove auto-distribution to beta channel TestFlight - Distribution to testers can be done manually using: fastlane distribute_beta This aligns with ULPB-iOS pipeline configuration for more reliable CI/CD. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR optimizes the CI/CD pipeline to address timeout issues and reduce redundant workflow executions. The changes improve the release process by avoiding long waits for Apple's build processing while maintaining code quality checks on pull requests.
Key changes:
- CI workflow now triggers only on pull requests (not on pushes to main/develop)
- TestFlight uploads skip waiting for build processing to avoid timeouts
- Manual distribution to beta testers decoupled from the upload step
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Removed push triggers for main and develop branches; CI now runs only on PRs and manual dispatch |
fastlane/Fastfile |
Updated beta lane to skip build processing wait, removed changelog inclusion, and added guidance for manual distribution |
| upload_to_testflight( | ||
| api_key: api_key, | ||
| skip_submission: false, | ||
| skip_waiting_for_build_processing: false, # Wait for processing before distribution | ||
| wait_processing_interval: 30, # Check every 30 seconds | ||
| wait_processing_timeout_duration: 900, # Wait up to 15 minutes for processing | ||
| distribute_external: true, # Distribute to external testers (public beta) | ||
| distribute_only: false, # Upload and distribute in one action | ||
| groups: ["Public Beta", "External Testers", "Beta Testers"], # Public beta groups | ||
| changelog: changelog_content, # Use changelog from CHANGELOG.md | ||
| notify_external_testers: true, # Send email notifications to external testers | ||
| uses_non_exempt_encryption: false, # Required for automatic distribution | ||
| submit_beta_review: true, # Automatically submit for Beta review | ||
| beta_app_description: "V2er is an elegant third-party client for V2EX forum", | ||
| beta_app_feedback_email: "[email protected]", | ||
| demo_account_required: false, # No demo account required | ||
| beta_app_review_info: { | ||
| contact_email: "[email protected]", | ||
| contact_first_name: "V2er", | ||
| contact_last_name: "Support", | ||
| contact_phone: "+86 13800138000", | ||
| notes: "This is a third-party client app for V2EX forum. No special account needed for testing." | ||
| } | ||
| skip_waiting_for_build_processing: true, # Don't wait - avoid timeout issues | ||
| distribute_external: false, # Can't distribute until Apple finishes processing | ||
| uses_non_exempt_encryption: false | ||
| # NOTE: changelog parameter intentionally omitted | ||
| # Even with skip_waiting_for_build_processing: true, providing a changelog | ||
| # causes fastlane to wait for the build to appear in App Store Connect, | ||
| # which defeats the purpose of skipping. Changelog can be added manually | ||
| # in App Store Connect or when distributing with: fastlane distribute_beta | ||
| ) |
Copilot
AI
Nov 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The beta lane still validates that a changelog entry exists (line 112) but no longer uses it. This creates an inconsistency where developers are required to maintain the changelog, but it's not actually included in the TestFlight submission.
Consider either:
- Removing the changelog validation since it's not used: Delete lines 111-114
- Or documenting that the changelog validation is for manual distribution via
fastlane distribute_beta
The current state may confuse developers about why changelog validation is required if the changelog isn't being used.
Code Coverage Report ❌Current coverage: 19.05% |
Summary
Changes
CI Pipeline (
ci.yml)pushtrigger formainanddevelopbranchesRelease Workflow (
Fastfile)skip_waiting_for_build_processing: true- Don't wait for Apple's build processingdistribute_external: false- Don't auto-distribute to beta testersManual Distribution
After the build is uploaded, you can distribute to beta testers using:
Reference
Aligned with grayverse/ULPB-iOS pipeline configuration
Test plan
fastlane distribute_betalane available for manual distribution🤖 Generated with Claude Code