Commit 9551275
committed
Document the ci-ios pipeline and fix the stale Ruby pin in BITRISE.md
Part of the macOS CI speed-up. Tracked on shop/issues-checkout-kit#1213, under shop/issues-checkout-kit#1202.
Docs only. No behaviour change, no code path touched.
## Change
**`e2e/BITRISE.md` gains a `ci-ios` section**
The file described one pipeline, `e2e`. There are now two, and the second one is a
merge gate, so its non-obvious properties need writing down. Three subsections:
- *Its trigger carries no `changed_files`.* Unlike `e2e`, the `ci-ios` entry has no
filter at all. A required check that never posts leaves a pull request permanently
unmergeable, so the pipeline starts on every pull request and the cheap Linux
`ci-ios-plan` workflow decides which macOS jobs are worth starting. Same two-layer
idea as `e2e`, with the first layer set to "always".
- *The check is self-posted.* `ci-ios-report` runs with `should_always_run: workflow`.
Bitrise's own pipeline status cannot tell the two kinds of not-run apart: a job the
plan did not select is a pass, a job the plan did select but that never finished is
a failure. A failed `ci-ios-plan` is a failure, not a green off an empty selection.
- *Changing which files select which job.* Edit `e2e/config/ios_ci.yml`, not the
workflows. `e2e/test/ios_ci_run_plan_test.rb` enforces set equality between the
emitted variables and the `run_if` expressions.
The `## Caching` section gains a paragraph for the two caches phases 8 and 9 add, and
records the trap that cost time in phase 9: `restore-cache` takes a single `key` input
holding one key per line in priority order. There is no plural `keys` input, and
`bitrise validate` does not catch that mistake — `e2e/test/bitrise_config_test.rb` does.
**`e2e/RUNBOOK.md` gains "The iOS check failed or never posted"**
The first question on a red or missing `Checkout Kit iOS` check is which of the three
layers broke: the trigger, the plan, or one macOS job. The entry is keyed by symptom, in
the order worth checking:
| Symptom | Layer | Usual cause |
| --- | --- | --- |
| Never appears | Trigger | Branch head older than the `trigger_map` entry, or still a draft |
| Red, every job skipped | Plan | `ci-ios-plan` failed — expired token or malformed config |
| Red, names a job | One macOS job | Failed, or timed out and reported nothing |
| Green, every job skipped | None | Expected on a docs, Android or web change |
The last row is the one that looks wrong and is not, so it carries the command to
confirm the selection is right rather than empty by accident:
```bash
ruby e2e/scripts/ios_ci_run_plan selected-jobs --changed-file <path>
```
**🟡 Stale Ruby version**
`BITRISE.md` claimed `ruby: 3.3.6`. `e2e/bitrise.yml` pins `3.4:installed`. The doc has
been wrong since that pin changed, and it is the line a reader copies when adding a
workflow. The correction also explains the `:installed` suffix, which is the part that
matters: it tells each stack to use its own preinstalled 3.4.x rather than compiling one
from source.
## Verification
- `shadowenv exec -- ./scripts/test_ruby` — green.
- The runbook command was run before it was written down. `Package.swift` prints
`swift-package-tests,swift-samples,react-native-build-ios,react-native-test-ios`;
`README.md` prints nothing. An earlier draft omitted the `selected-jobs` subcommand
and errored with `Unknown command "--changed-file"`.1 parent 1780924 commit 9551275
2 files changed
Lines changed: 60 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
55 | 80 | | |
56 | 81 | | |
57 | 82 | | |
| |||
175 | 200 | | |
176 | 201 | | |
177 | 202 | | |
178 | | - | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
0 commit comments