You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: e2e/BITRISE.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,6 +68,7 @@ The non-secret E2E defaults are defined in `e2e/bitrise.yml` under `app.envs`. D
68
68
|`E2E_PACKAGE_COMMAND_TIMEOUT_SECONDS`|`300`| Per-command timeout for package-suite matrix and suite commands. |
69
69
|`E2E_REPORT_COMMAND_TIMEOUT_SECONDS`|`300`| Timeout for the GitHub reporting command. |
70
70
|`E2E_RUBY_INSTALL_TIMEOUT_SECONDS`|`1800`| Timeout for installing the exact repository Ruby version from `.ruby-version`. |
71
+
|`E2E_CANCEL_CONCURRENT_PR_BUILDS`|`true`| Cancels older in-progress E2E builds for the same PR when the Bitrise API token secret is available. |
71
72
72
73
Secrets still need to be configured in Bitrise.io.
73
74
@@ -85,6 +86,14 @@ BrowserStack credentials are required by the `e2e-run-browserstack` workflow.
85
86
|`BROWSERSTACK_USERNAME`| BrowserStack API username |
86
87
|`BROWSERSTACK_ACCESS_KEY`| BrowserStack API access key |
87
88
89
+
BrowserStack artifact links in GitHub reports require access to BrowserStack App Automate. Sign in to [BrowserStack App Automate](https://app-automate.browserstack.com/dashboard/v2/builds) before opening build, video, screenshot, or log links.
90
+
91
+
## Bitrise API token
92
+
93
+
The package-suite workflow runs a PR concurrency guard before expensive E2E work. Configure `BITRISE_API_TOKEN` as a Bitrise secret so the guard can cancel older in-progress E2E builds for the same PR. If `BITRISE_API_TOKEN` is unavailable, the guard also accepts `BITRISE_PAT`.
94
+
95
+
If neither token is configured, the guard logs a skip message and the pipeline continues without cancellation.
96
+
88
97
## GitHub reporting
89
98
90
99
The report workflow uses a GitHub API token to create commit statuses, Check Runs, and sticky PR comments. Prefer the short-lived token generated by the Bitrise GitHub App over a long-lived personal access token.
@@ -97,7 +106,7 @@ Green runs update statuses and Check Runs without creating new PR comments. Fail
97
106
98
107
## PR trigger
99
108
100
-
Configure the Bitrise app to run the `e2e` pipeline for pull requests once the skeleton is ready to validate in Bitrise.
109
+
`bitrise.yml` maps pull requests to the `e2e` pipeline with `trigger_map`. Keep the GitHub checks non-required while `E2E_STRICT=false`.
The Bitrise E2E pipeline starts in soft-fail mode:
6
+
7
+
```bash
8
+
E2E_STRICT=false
9
+
```
10
+
11
+
In soft-fail mode, BrowserStack Maestro assertion failures are reported through GitHub commit statuses, Check Runs, and the sticky PR failure comment, but the BrowserStack workflow exits successfully so the initial rollout does not block PR progress.
12
+
13
+
Set `E2E_STRICT=true` only after the suite has stabilized and the corresponding GitHub contexts are ready to become required checks.
14
+
15
+
## Retry behavior
16
+
17
+
BrowserStack API calls retry transient infrastructure responses once by default:
18
+
19
+
```bash
20
+
E2E_BROWSERSTACK_API_RETRIES=1
21
+
```
22
+
23
+
Retry applies to HTTP 429 and 5xx responses. Maestro assertion failures are not auto-retried by default so first-failure evidence is preserved.
24
+
25
+
## Timeouts
26
+
27
+
BrowserStack polling uses these defaults:
28
+
29
+
```bash
30
+
E2E_BROWSERSTACK_TIMEOUT_SECONDS=1800
31
+
E2E_BROWSERSTACK_POLL_SECONDS=30
32
+
```
33
+
34
+
If polling times out, the runner attempts to stop the BrowserStack build before failing or soft-failing according to `E2E_STRICT`.
35
+
36
+
## Local rerun notes
37
+
38
+
Use the matrix row from a failure report to identify the app target, platform, OS track, and suite:
0 commit comments