Files
Álvaro Brey 87417b48b2 ci: merge gate that tightens once the full suite is approved (#8235)
* ci: post a merge gate status that tightens once the full suite is approved

Adds a ci/all-tests-gate commit status driven from CircleCI. A no-requires
job posts success at pipeline start, approving the full-suite hold flips
it to pending, and all-tasks-passed posts success again once every full
job is green. Release pipelines post it from all-tests-succeeded so
release PRs are not blocked once the context is required.

The reduced suite needs no gate of its own: its jobs are already required
individually.

* test: find the merge gate by its instance name

all-tasks-passed is now an instance of the parameterized post-gate-status
job, so the workflow entry is keyed by the job name and carries name:.

* ci: never post the default gate success once the full suite is requested

full-suite-not-requested waits for the reduced suite and checks the
hold first: approved means halt without posting, so the gate goes from
unreported straight to pending; anything but on_hold fails the job
rather than posting success. all-tasks-passed reaches the reduced suite
through full-suite-started, so it keeps a single list, and the test
guards the list that gates normal PRs.

* ci: retry the gate status post

A failed POST leaves the gate at its previous value: green if the pending
post fails, stuck if the final success post fails. Retrying transient
errors narrows both. --retry-all-errors is not used: the cimg/base curl
predates it.

* ci: mark the merge gate pending when the bot approves the full suite

The bare @RCGitBot please test comment is the usual way to request the
full suite. Posting pending from the action right after a successful
approval closes the window on that path; a re-comment on an already
approved hold posts nothing. Manual approvals in the CircleCI UI keep
the window of one container start.

* ci: pin the gate's ordering in a test and trim the fan-in list

Asserts the state of each gate instance and the requires edges that
keep pending after the default success and the final success last.
Drops the two reduced-suite jobs all-tasks-passed still listed directly,
and lets the hold check log a curl failure instead of a bare exit code.
2026-11-06 15:32:43 +00:00
..
2024-03-14 14:59:53 +01:00

fastlane documentation

Installation

Make sure you have the latest version of the Xcode command line tools installed:

xcode-select --install

For fastlane installation instructions, see Installing fastlane

Available Actions

check_pods

[bundle exec] fastlane check_pods

prepare_for_carthage

[bundle exec] fastlane prepare_for_carthage

Removes some directories before building with Carthage to prevent unnecessary or problematic scheme resolution (e.g., Magic Weather SwiftUI.xcodeproj or v3LoadShedderIntegration.xcodeproj). Also removes v3LoadShedderIntegration and v4LoadShedderIntegration directories to prevent xcodebuild from timing out when scanning for projects.

load_spm_dependencies

[bundle exec] fastlane load_spm_dependencies

iOS

ios bump

[bundle exec] fastlane ios bump

Bump version, update swift header, edit changelog, and create pull request

ios automatic_bump

[bundle exec] fastlane ios automatic_bump

Automatically bumps version, update swift header, edit changelog, and create pull request

ios github_release

[bundle exec] fastlane ios github_release

Make github release

ios admob_github_release

[bundle exec] fastlane ios admob_github_release

Make github release for purchases-ios-admob

ios prepare_next_version

[bundle exec] fastlane ios prepare_next_version

Creates PR changing version to next minor adding a -SNAPSHOT suffix

ios setup_dev

[bundle exec] fastlane ios setup_dev

Setup development environment

ios update_paywall_preview_resources_commit

[bundle exec] fastlane ios update_paywall_preview_resources_commit

Updates paywall-preview-resources-commit to point to latest commit on main and creates/updates PR

ios record_and_upload_v2_snapshots

[bundle exec] fastlane ios record_and_upload_v2_snapshots

Records Paywall template screenshots once and distributes them to the provided target_repository_path and/or Emerge

ios record_paywall_screenshots

[bundle exec] fastlane ios record_paywall_screenshots

Records screenshots for paywalls

ios build_paywalls_tester_for_emerge

[bundle exec] fastlane ios build_paywalls_tester_for_emerge

Build the Paywalls Test app for Emerge Snapshots

ios record_and_upload_v1_snapshots

[bundle exec] fastlane ios record_and_upload_v1_snapshots

Record V1 template snapshots and upload to Emerge

ios upload_v1_snapshots_to_emerge

[bundle exec] fastlane ios upload_v1_snapshots_to_emerge

Upload V1 template snapshots to Emerge using BYOS

ios build_paywalls_tester_for_emerge_ios

[bundle exec] fastlane ios build_paywalls_tester_for_emerge_ios

ios test_ios

[bundle exec] fastlane ios test_ios

Runs all the iOS tests

ios test_tvos

[bundle exec] fastlane ios test_tvos

Runs all the tvOS tests

ios test_watchos

[bundle exec] fastlane ios test_watchos

Runs all the watchOS tests

ios test_revenuecat_admob

[bundle exec] fastlane ios test_revenuecat_admob

Runs all RevenueCatAdMob tests (standalone SPM package under AdapterSDKs/RevenueCatAdMob)

ios test_revenuecatui

[bundle exec] fastlane ios test_revenuecatui

Runs all RevenueCatUI tests

ios release_checks

[bundle exec] fastlane ios release_checks

Release checks

ios build_tv_watch_mac_visionos

[bundle exec] fastlane ios build_tv_watch_mac_visionos

build tvOS, watchOS, macOS and visionOS

ios build_with_app_extension_safe_apis

[bundle exec] fastlane ios build_with_app_extension_safe_apis

Build a scheme with app-extension-safe API checks enabled

ios build_mac

[bundle exec] fastlane ios build_mac

macOS build

ios build_and_upload_binary_size_analysis

[bundle exec] fastlane ios build_and_upload_binary_size_analysis

Build BinarySizeTest app and upload it for size analysis

ios archive

[bundle exec] fastlane ios archive

archive

ios archive_all_platforms

[bundle exec] fastlane ios archive_all_platforms

archive all platforms

ios run_api_tests

[bundle exec] fastlane ios run_api_tests

run API Tests

ios run_maestro_e2e_tests_ios

[bundle exec] fastlane ios run_maestro_e2e_tests_ios

run_maestro_e2e_tests

ios build_sdk_update_test_apps

[bundle exec] fastlane ios build_sdk_update_test_apps

Build the SDK update test apps

ios run_sdk_update_test

[bundle exec] fastlane ios run_sdk_update_test

Run an SDK update Maestro test case

ios replace_api_key_integration_tests

[bundle exec] fastlane ios replace_api_key_integration_tests

replace API KEY for installation and integration tests

ios release

[bundle exec] fastlane ios release

Create XCFramework, and create GitHub release

ios push_revenuecat_pod

[bundle exec] fastlane ios push_revenuecat_pod

Release to CocoaPods

ios push_revenuecatui_pod

[bundle exec] fastlane ios push_revenuecatui_pod

Release to CocoaPods

ios tag_current_branch

[bundle exec] fastlane ios tag_current_branch

Tag current branch with current version number

ios trigger_bump

[bundle exec] fastlane ios trigger_bump

Trigger bump

ios trigger_bump_sdk_in_rc_mobile_app

[bundle exec] fastlane ios trigger_bump_sdk_in_rc_mobile_app

Trigger bump SDK in RC mobile app

ios generate_snapshots_RC

[bundle exec] fastlane ios generate_snapshots_RC

Trigger CircleCI job to generate snapshots for RevenueCat

ios generate_snapshots_RCUI

[bundle exec] fastlane ios generate_snapshots_RCUI

Trigger CircleCI job to generate snapshots for RevenueCatUI

ios trigger_generate_swiftinterface

[bundle exec] fastlane ios trigger_generate_swiftinterface

Trigger CircleCI job to generate and update baseline swiftinterface files

ios create_snapshot_pr

[bundle exec] fastlane ios create_snapshot_pr

Creates a new PR after new snapshot files were generated

ios create_swiftinterface_pr

[bundle exec] fastlane ios create_swiftinterface_pr

Creates a new PR after new swiftinterface baseline files were generated

ios update_swiftinterface_baselines

[bundle exec] fastlane ios update_swiftinterface_baselines

Generate and update baseline swiftinterface files

ios compile_autogenerated_header

[bundle exec] fastlane ios compile_autogenerated_header

Creates RevenueCat-Swift.h for a new release

ios export_xcframeworks

[bundle exec] fastlane ios export_xcframeworks

ios tuist_generate

[bundle exec] fastlane ios tuist_generate

Generate Tuist workspace

ios xcframework_installation_tests

[bundle exec] fastlane ios xcframework_installation_tests

Test XCFramework integration by building XCFrameworkInstallationTests app

ios remote_config_production_tests

[bundle exec] fastlane ios remote_config_production_tests

Run BackendIntegrationTests

Runs the remote config blob health monitor against the live backend (two projects)

Keys come from the environment (REVENUECAT_REMOTE_CONFIG_CDN_API_KEY / _INLINE_API_KEY);

each test skips if its key is unset, so no key is ever written into source.

ios backend_integration_tests

[bundle exec] fastlane ios backend_integration_tests

ios loadshedder_integration_tests_in_old_major

[bundle exec] fastlane ios loadshedder_integration_tests_in_old_major

Run LoadShedder tests in old major

ios update_swift_package_commit

[bundle exec] fastlane ios update_swift_package_commit

Update swift package commit

ios preview_docs

[bundle exec] fastlane ios preview_docs

Preview docs

ios build_docs

[bundle exec] fastlane ios build_docs

Generate docs without publishing

ios build_and_publish_docs

[bundle exec] fastlane ios build_and_publish_docs

Generate & publish docs

ios deploy_purchase_tester

[bundle exec] fastlane ios deploy_purchase_tester

Build and deploy PurchaseTesterSwiftUI

ios deploy_rct_tester

[bundle exec] fastlane ios deploy_rct_tester

Deploy RCT Tester to TestFlight

ios fetch_paywall_preview_resources

[bundle exec] fastlane ios fetch_paywall_preview_resources

Clones or updates paywall-preview-resources repo

ios generate_swiftinterface

[bundle exec] fastlane ios generate_swiftinterface

Generate Swift interface files for API change detection

ios check_api_changes

[bundle exec] fastlane ios check_api_changes

Check API changes and report results

ios deploy_to_spm

[bundle exec] fastlane ios deploy_to_spm

ios sandbox_testers

[bundle exec] fastlane ios sandbox_testers

Create or delete sandbox testers

ios enable_customer_center

[bundle exec] fastlane ios enable_customer_center

Enable customer center development by cherry-picking a specific commit

ios notify_pr_ci_failure

[bundle exec] fastlane ios notify_pr_ci_failure

ios clear_pr_ci_failure

[bundle exec] fastlane ios clear_pr_ci_failure

Mac

mac test_macos

[bundle exec] fastlane mac test_macos

Runs tests on macOS


This README.md is auto-generated and will be re-generated every time fastlane is run.

More information about fastlane can be found on fastlane.tools.

The documentation of fastlane can be found on docs.fastlane.tools.