Commit 0fc1185
feat(ci): POC Bitrise GH Action runners for iOS E2E (#28791)
## **Description**
Adds a temporary optional workflow to benchmark iOS E2E builds and tests
on Bitrise-provided GitHub Actions self-hosted runners as an alternative
to the current Cirrus CI macOS runners.
**What changed:**
- New `temp-bitrise-ios-e2e.yml` workflow (standalone benchmarking, not
part of CI gate)
- `run-e2e-workflow.yml` added `use_bitrise_runner` boolean input for
optional Bitrise runner routing, plus Vagrant path fix
- `run-e2e-smoke-tests-ios.yml` threaded `use_bitrise_runner` through
all 13 smoke test jobs
**Trigger strategy:**
- PRs: opt-in via `bitrise-poc` label only (label-based + `synchronize`)
- Main: hourly cron for baseline data collection
- Concurrency group per branch (stale pushes auto-cancelled)
- Fork PRs blocked from running on self-hosted runners
**Existing CI pipeline is NOT modified.** All defaults preserved (Cirrus
runners remain the default).
**Security:**
- Label-gated trigger (no automatic execution on all PRs)
- Fork PR guard (`!github.event.pull_request.head.repo.fork`)
- Boolean input with hardcoded runner group name (no string injection)
- `configure-keystores: false` (no signing certificates on Bitrise
runners)
## **Changelog**
CHANGELOG entry: null
## **Related issues**
Fixes: INFRA-3527
## **Manual testing steps**
```gherkin
Feature: Bitrise iOS E2E Runner Benchmarking
Scenario: Trigger benchmarking workflow via label
Given a PR exists on the repo
When user adds the bitrise-poc label
Then the iOS build starts on Bitrise runner
And all 13 smoke test suites run on Bitrise runners
And artifacts are uploaded
And no sensitive data appears in workflow logs
Scenario: Fork PR does not trigger
Given a fork PR exists with the bitrise-poc label
Then the workflow is skipped
```
## **Screenshots/Recordings**
N/A (CI workflow changes only)
## **Pre-merge author checklist**
- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
## **Pre-merge reviewer checklist**
- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 3a70efc commit 0fc1185
4 files changed
Lines changed: 407 additions & 1 deletion
File tree
- .github
- workflows
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
18 | 20 | | |
19 | 21 | | |
20 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
16 | 21 | | |
17 | 22 | | |
18 | 23 | | |
| |||
35 | 40 | | |
36 | 41 | | |
37 | 42 | | |
| 43 | + | |
38 | 44 | | |
39 | 45 | | |
40 | 46 | | |
| |||
53 | 59 | | |
54 | 60 | | |
55 | 61 | | |
| 62 | + | |
56 | 63 | | |
57 | 64 | | |
58 | 65 | | |
| |||
71 | 78 | | |
72 | 79 | | |
73 | 80 | | |
| 81 | + | |
74 | 82 | | |
75 | 83 | | |
76 | 84 | | |
| |||
89 | 97 | | |
90 | 98 | | |
91 | 99 | | |
| 100 | + | |
92 | 101 | | |
93 | 102 | | |
94 | 103 | | |
| |||
107 | 116 | | |
108 | 117 | | |
109 | 118 | | |
| 119 | + | |
110 | 120 | | |
111 | 121 | | |
112 | 122 | | |
| |||
125 | 135 | | |
126 | 136 | | |
127 | 137 | | |
| 138 | + | |
128 | 139 | | |
129 | 140 | | |
130 | 141 | | |
| |||
143 | 154 | | |
144 | 155 | | |
145 | 156 | | |
| 157 | + | |
146 | 158 | | |
147 | 159 | | |
148 | 160 | | |
| |||
161 | 173 | | |
162 | 174 | | |
163 | 175 | | |
| 176 | + | |
164 | 177 | | |
165 | 178 | | |
166 | 179 | | |
| |||
179 | 192 | | |
180 | 193 | | |
181 | 194 | | |
| 195 | + | |
182 | 196 | | |
183 | 197 | | |
184 | 198 | | |
| |||
197 | 211 | | |
198 | 212 | | |
199 | 213 | | |
| 214 | + | |
200 | 215 | | |
201 | 216 | | |
202 | 217 | | |
| |||
215 | 230 | | |
216 | 231 | | |
217 | 232 | | |
| 233 | + | |
218 | 234 | | |
219 | 235 | | |
220 | 236 | | |
| |||
233 | 249 | | |
234 | 250 | | |
235 | 251 | | |
| 252 | + | |
236 | 253 | | |
237 | 254 | | |
238 | 255 | | |
| |||
251 | 268 | | |
252 | 269 | | |
253 | 270 | | |
| 271 | + | |
254 | 272 | | |
255 | 273 | | |
256 | 274 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
56 | 61 | | |
57 | 62 | | |
58 | 63 | | |
59 | 64 | | |
60 | | - | |
| 65 | + | |
61 | 66 | | |
62 | 67 | | |
63 | 68 | | |
| |||
102 | 107 | | |
103 | 108 | | |
104 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
105 | 138 | | |
106 | 139 | | |
107 | 140 | | |
| |||
0 commit comments