Skip to content

feat(ci): POC Bitrise GH Action runners for iOS E2E [INFRA-3527]#28730

Closed
Qbandev wants to merge 1 commit into
mainfrom
feat/infra-3527-bitrise-ios-runners-poc
Closed

feat(ci): POC Bitrise GH Action runners for iOS E2E [INFRA-3527]#28730
Qbandev wants to merge 1 commit into
mainfrom
feat/infra-3527-bitrise-ios-runners-poc

Conversation

@Qbandev
Copy link
Copy Markdown
Contributor

@Qbandev Qbandev commented Apr 13, 2026

Summary

  • Adds temporary optional workflow (temp-bitrise-ios-e2e.yml) to benchmark iOS E2E builds on Bitrise-provided GH Action runners
  • Tests whether Bitrise runners reduce macOS runner contention plaguing Cirrus CI (150-400 task queues, 6-10 min waits)
  • Adds backwards-compatible ios_runner_override input to run-e2e-workflow.yml and threads it through all 13 smoke test jobs
  • Does NOT modify existing CI pipeline — runs in parallel as a separate optional signal
  • Initial scope: iOS build + SmokeTrade suite only

Changes

File Change
.github/workflows/temp-bitrise-ios-e2e.yml New — standalone workflow triggered by workflow_dispatch or bitrise-ios-poc label
.github/workflows/run-e2e-workflow.yml Add optional ios_runner_override input (default empty = existing Cirrus runner)
.github/workflows/run-e2e-smoke-tests-ios.yml Thread ios_runner_override through all 13 smoke test job calls

Acceptance Criteria (INFRA-3527)

  1. Create a temporary iOS GH Action workflow
  2. Setup the Bitrise-provided GH Action runners
  3. Test the Bitrise GH Action runners setup (pending manual trigger)
  4. Notify @javier-briones once ready to merge
  5. Merge the PR and monitor queuing time

Benchmarking Data

Results will be recorded in the benchmarking spreadsheet.

Test Plan

  • Trigger workflow manually via workflow_dispatch on the feature branch
  • Verify runner diagnostics step prints expected Bitrise runner environment
  • Verify iOS build completes successfully on Bitrise runner
  • Verify .app artifact is uploaded
  • Verify SmokeTrade tests run on Bitrise runners
  • Compare build time to existing Cirrus-based build
  • Record timing data in benchmarking spreadsheet
  • Run 3-5 benchmarking passes at different times of day

INFRA-3527

🤖 Generated with Claude Code

@github-actions
Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-dev-ops DevOps team label Apr 13, 2026
@Qbandev Qbandev requested a review from Copilot April 13, 2026 14:11
@Qbandev Qbandev added the no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed label Apr 13, 2026
@metamaskbot metamaskbot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Apr 13, 2026
Copy link
Copy Markdown
Contributor

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

Adds a temporary, opt-in GitHub Actions workflow to benchmark iOS E2E execution on Bitrise-provided runner groups, while also introducing a backwards-compatible mechanism to override which runner is used for iOS E2E jobs across the reusable E2E workflows.

Changes:

  • Add new temporary workflow temp-bitrise-ios-e2e.yml to build iOS E2E app and optionally run SmokeTrade on Bitrise runner group.
  • Add optional ios_runner_override input to run-e2e-workflow.yml to support runs-on overrides (e.g., runner group JSON).
  • Thread ios_runner_override through all iOS smoke-test reusable workflow calls.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.

File Description
.github/workflows/temp-bitrise-ios-e2e.yml New opt-in benchmarking workflow targeting a Bitrise runner group and invoking existing reusable smoke tests.
.github/workflows/run-e2e-workflow.yml Adds ios_runner_override input and uses it to compute runs-on for iOS jobs.
.github/workflows/run-e2e-smoke-tests-ios.yml Adds and propagates ios_runner_override into all smoke suite job calls.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/temp-bitrise-ios-e2e.yml Outdated
Comment thread .github/workflows/temp-bitrise-ios-e2e.yml
Comment thread .github/workflows/temp-bitrise-ios-e2e.yml Outdated
Comment thread .github/workflows/temp-bitrise-ios-e2e.yml
Comment thread .github/workflows/temp-bitrise-ios-e2e.yml Outdated
Comment thread .github/workflows/temp-bitrise-ios-e2e.yml Outdated
Comment thread .github/workflows/run-e2e-workflow.yml
@github-actions github-actions Bot added size-XL and removed size-M labels Apr 13, 2026
@github-actions
Copy link
Copy Markdown
Contributor

E2E Fixture Validation — Schema is up to date
11 value mismatches detected (expected — fixture represents an existing user).
View details

@sonarqubecloud
Copy link
Copy Markdown

@Qbandev Qbandev force-pushed the feat/infra-3527-bitrise-ios-runners-poc branch from 1eb45a1 to 07ffc43 Compare April 14, 2026 08:40
Add temporary, opt-in workflow to benchmark iOS E2E builds on
Bitrise-provided GitHub Actions self-hosted runners vs Cirrus CI.

Changes:
- New temp-bitrise-ios-e2e.yml: workflow_dispatch-only trigger,
  builds iOS E2E app on Bitrise runners, runs SmokeTrade suite
- Modified run-e2e-workflow.yml: added use_bitrise_runner boolean
  input to optionally route iOS jobs to Bitrise runner group
  (runner group name hardcoded, not user-supplied)
- Modified run-e2e-smoke-tests-ios.yml: threads use_bitrise_runner
  boolean through all 13 smoke test job calls

Security hardening (adversarial review with Gemini 3 Pro):
- workflow_dispatch only — no pull_request trigger
- configure-keystores: false — no signing certs on runners
- Boolean runner toggle instead of arbitrary JSON string input
- Sanitized diagnostics — no sensitive paths in logs
- Vagrant symlink fix documented as temporary

INFRA-3527

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Qbandev Qbandev force-pushed the feat/infra-3527-bitrise-ios-runners-poc branch from 56ec070 to c4f6f9c Compare April 14, 2026 08:56
@github-actions github-actions Bot added size-M and removed size-XL labels Apr 14, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

⏭️ Smart E2E selection skipped - draft PR

All E2E tests pre-selected.

View GitHub Actions results

@Qbandev Qbandev added the DO-NOT-MERGE Pull requests that should not be merged label Apr 14, 2026
@Qbandev Qbandev closed this Apr 14, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 14, 2026
@Qbandev Qbandev deleted the feat/infra-3527-bitrise-ios-runners-poc branch April 14, 2026 09:03
@Qbandev Qbandev restored the feat/infra-3527-bitrise-ios-runners-poc branch April 14, 2026 09:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

DO-NOT-MERGE Pull requests that should not be merged INVALID-PR-TEMPLATE PR's body doesn't match template no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed size-M team-dev-ops DevOps team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants