From e2ca3e5fab882f9cb93bc2c819ef0b396df18751 Mon Sep 17 00:00:00 2001 From: graycreate Date: Sun, 30 Nov 2025 08:54:28 +0800 Subject: [PATCH] ci: optimize pipeline triggers and release workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .github/workflows/ci.yml | 2 -- fastlane/Fastfile | 38 +++++++++++++++----------------------- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c12e4f..dcaf093 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,8 +4,6 @@ on: pull_request: branches: [main] types: [opened, synchronize, reopened] - push: - branches: [main, develop] workflow_dispatch: concurrency: diff --git a/fastlane/Fastfile b/fastlane/Fastfile index f9f7f1a..f70a3b8 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -163,35 +163,27 @@ platform :ios do # Build the app build_ipa - # Extract changelog for the current version - changelog_content = ChangelogHelper.extract_changelog(current_version) - # Upload to TestFlight + # NOTE: We skip waiting for build processing to avoid timeout issues. + # Apple's build processing can take 5-30 minutes, which often exceeds reasonable timeout limits. + # Distribution to testers can be done after processing completes using: fastlane distribute_beta 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: "support@v2er.app", - demo_account_required: false, # No demo account required - beta_app_review_info: { - contact_email: "support@v2er.app", - 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 ) + UI.success("✅ Build uploaded successfully to TestFlight!") + UI.important("📦 Build will be available for testing once Apple finishes processing (usually 5-30 minutes)") + UI.important("🔔 You can distribute to testers using: fastlane distribute_beta") + # Notify success notification( title: "V2er iOS",