Skip to content

Run integration tests on all branches#3242

Merged
tonidero merged 13 commits into
mainfrom
run-integration-tests-all-branches
Mar 16, 2026
Merged

Run integration tests on all branches#3242
tonidero merged 13 commits into
mainfrom
run-integration-tests-all-branches

Conversation

@tonidero

@tonidero tonidero commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Description

After removing usages of firebase test lab devices of integration tests in #3238, this makes those tests run on all branches, even if not release branches. It keeps the daily run jobs in any case, that run against the load shedder to make sure that flow is tested.


Note

Low Risk
Changes are limited to CI/fastlane test orchestration, mainly broadening when emulator integration tests run and toggling Slack/heartbeat notifications; primary risk is increased CI load or missed alerts if the flag is misconfigured.

Overview
Runs Android emulator integration test jobs (including purchases and CEC variants) on all branches by removing the release-branches workflow filters.

Adds an opt-in notify_slack parameter for run-purchases-integration-tests that passes NOTIFY_SLACK into Fastlane, and updates the Fastlane lane to only post Slack results/ping the heartbeat monitor when that flag is true (enabled for the daily load-shedder scheduled runs).

Written by Cursor Bugbot for commit 9179387. This will update automatically on new commits. Configure here.

tonidero and others added 12 commits March 16, 2026 09:35
Remove the Firebase/GCP dependency for instrumentation tests by running
them on CircleCI machine executors with Android emulators instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit will be reverted after confirming the jobs work on CI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Switch all emulator images from android-34 to android-32 to avoid
  RECEIVER_EXPORTED SecurityException on API 34+
- Use connectedAndroidTest -PtestBuildType=release instead of
  connectedReleaseAndroidTest which doesn't exist in integration-tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use build/outputs/androidTest-results for instrumentation tests
instead of build/test-results which is for unit tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bundle.getSerializable(String, Class) was added in API 33. Use the
deprecated getSerializable(String) overload for compatibility with
the API 32 emulator.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ulators

Switch connectedAndroidTest tasks from debug to release variants to match
the previous Firebase Test Lab configuration which ran against release APKs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… jobs

All three emulator jobs now attach the workspace from prepare-tests for
prebuilt artifacts, and run-integration-tests gets build cache restore/save.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tonidero tonidero requested a review from a team as a code owner March 16, 2026 14:22
@codecov

codecov Bot commented Mar 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.40%. Comparing base (81133f3) to head (9179387).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3242   +/-   ##
=======================================
  Coverage   79.40%   79.40%           
=======================================
  Files         356      356           
  Lines       14345    14345           
  Branches     1959     1959           
=======================================
  Hits        11390    11390           
  Misses       2151     2151           
  Partials      804      804           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@rickvdl rickvdl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM!

Out of curiosity, what was the reason we decided to this now after migrating from Firebase?

@tonidero

Copy link
Copy Markdown
Contributor Author

what was the reason we decided to this now after migrating from Firebase?

I would say mostly to avoid too much usage of the firebase test lab, since it can get trickier to identify runs there if we're running them too often + to avoid any possible costs related to that.

Base automatically changed from migrate-firebase-to-circleci-emulators to main March 16, 2026 15:44
@tonidero tonidero enabled auto-merge March 16, 2026 15:46
@tonidero tonidero added this pull request to the merge queue Mar 16, 2026
Merged via the queue into main with commit fa60ba1 Mar 16, 2026
34 checks passed
@tonidero tonidero deleted the run-integration-tests-all-branches branch March 16, 2026 16:16
github-merge-queue Bot pushed a commit that referenced this pull request Mar 16, 2026
**This is an automatic release.**

## RevenueCat SDK
### 🐞 Bugfixes
* Fix & Standardize Galaxy Date Parsing Edge Cases (#3216) via Will
Taylor (@fire-at-will)
* Fix addSuccessfullyPostedToken for new purchases in
PostPendingTransactionsHelper (#3239) via Facundo Menzella
(@facumenzella)
* [Galaxy]: Fix race condition when fetching Galaxy products (#3213) via
Will Taylor (@fire-at-will)
* Fixes double padding in PaywallActivity on Android 15+ when
`edgeToEdge` parameter is false (#3227) via Cesar de la Vega (@vegaro)

## RevenueCatUI SDK
### 🐞 Bugfixes
* Fix bold text not rendering in Markdown lists (#3228) via Cesar de la
Vega (@vegaro)
* Fix: Clear in-memory offerings cache on locale override to prevent
stale paywall data (#3225) via Antonio Pallares (@ajpallares)
### Paywallv2
#### ✨ New Features
* Feature: Update default paywall (#3133) via Jacob Rakidzich
(@JZDesign)
#### 🐞 Bugfixes
* Fix V2 paywall safe area in landscape mode (#3221) via Cesar de la
Vega (@vegaro)

### 🔄 Other Changes
* Run integration tests on all branches (#3242) via Toni Rico
(@tonidero)
* Migrate Firebase Test Lab jobs to CircleCI emulators (#3238) via Toni
Rico (@tonidero)
* Run metalava on galaxy module in test-galaxy job (#3235) via Will
Taylor (@fire-at-will)
* Add offering_id to custom paywall impression event (#3230) via Rick
(@rickvdl)
* Cache isAutoRenewing to detect subscription changes without
syncPurchases (#3198) via Facundo Menzella (@facumenzella)
* Bump fastlane-plugin-revenuecat_internal from `e146447` to `3e8c384`
(#3233) via dependabot[bot] (@dependabot[bot])

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk release housekeeping: version string bumps and
documentation/deployment path updates with no functional runtime logic
changes beyond the exposed version constant.
> 
> **Overview**
> Publishes the `9.26.0` release by removing `-SNAPSHOT` across
build/version metadata (root `VERSION_NAME`, `.version`,
`Config.frameworkVersion`, and sample/test app dependency pins).
> 
> Updates release documentation artifacts by adding the `9.26.0` notes
to `CHANGELOG.md`/`CHANGELOG.latest.md`, switching docs deployment in
CircleCI to sync `docs/9.26.0` to S3, and updating `docs/index.html` to
redirect to the new version.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
0a30a45. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
github-merge-queue Bot pushed a commit that referenced this pull request Apr 16, 2026
## Summary
Slack notifications for daily integration tests weren't working since
#3242. This PR introduces a fix for that.

- Pass `notify_slack` as a Fastlane command-line option instead of a
CircleCI step-level environment variable
- The `NOTIFY_SLACK` env var approach (introduced in #3242, patched in
#3259) was unreliable due to CircleCI boolean parameter rendering in the
`environment` block
- Uses the same proven mechanism as `backend_environment` (Fastlane
option), which already works correctly

## Test plan
- [ ] Verify the `run-purchases-integration-tests-notify-slack-test` job
sends a Slack notification
- [ ] Revert the temp test commit before merging
- [ ] Verify nightly scheduled run sends Slack after merge

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Small, localized CI/Fastlane wiring change that only affects whether
Slack notifications are sent after integration tests.
> 
> **Overview**
> Fixes Slack notifications for scheduled purchases integration tests by
passing `notify_slack` into the `run_purchases_integration_tests`
Fastlane lane as a command-line option from CircleCI, instead of relying
on a step-level `NOTIFY_SLACK` environment variable.
> 
> Updates the Fastlane lane to gate Slack result posting on
`options[:notify_slack]`, ensuring the workflow’s boolean parameter is
interpreted consistently.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
f80ef44. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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