Skip to content

Conversation

@graycreate
Copy link
Member

Summary

  • 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

Changes

CI Pipeline (ci.yml)

  • Removed push trigger for main and develop branches
  • CI now only runs on pull requests and manual dispatch

Release Workflow (Fastfile)

  • skip_waiting_for_build_processing: true - Don't wait for Apple's build processing
  • distribute_external: false - Don't auto-distribute to beta testers
  • Removed changelog extraction (caused wait issues)
  • Added helpful messages about manual distribution

Manual Distribution

After the build is uploaded, you can distribute to beta testers using:

fastlane distribute_beta

Reference

Aligned with grayverse/ULPB-iOS pipeline configuration

Test plan

  • CI only triggers on PR (not on push to main)
  • Release uploads to TestFlight without waiting for processing
  • fastlane distribute_beta lane available for manual distribution

🤖 Generated with Claude Code

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]>
Copilot AI review requested due to automatic review settings November 30, 2025 00:54
Copilot finished reviewing on behalf of graycreate November 30, 2025 00:57
@graycreate graycreate merged commit 5b71461 into main Nov 30, 2025
11 checks passed
@graycreate graycreate deleted the ci/optimize-pipeline-triggers branch November 30, 2025 00:57
Copy link

Copilot AI left a 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

Comment on lines 170 to 181
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
)
Copy link

Copilot AI Nov 30, 2025

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:

  1. Removing the changelog validation since it's not used: Delete lines 111-114
  2. 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.

Copilot uses AI. Check for mistakes.
@github-actions
Copy link

Code Coverage Report ❌

Current coverage: 19.05%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants