apache / apache/texera

Backport checks fail on release/v1.2 because main's build.yml calls a smoke-boot script the release branch lacks

Open
#8,295 1 comment 0 reactions 1 assignee Claimed by @anthonychengit View on GitHub
Dominant language
Scala
Stars
314
Forks
187
Avg merge
1d 21h
Merged PRs (30d)
214

Description

### What happened?

A `release/v1.2`-labelled PR whose labels also enable the `amber-integration`
or `platform-integration` stack fails its **Backport Checks** run with exit
code 127:

```
.github/scripts/smoke-boot.sh: No such file or directory
##[error]Process completed with exit code 127.
```

The backport check runs **`main`'s `build.yml`** against a workspace that
`.github/scripts/prepare-backport-checkout.sh` has switched to the **release
branch's tree**. `smoke-boot.sh` was added to `main` by
"ci: add platform-integration job to boot each service against real infra"
(#6274) and never existed on `release/v1.2`, so the YAML calls a script that is
genuinely not on disk. `release/v1.2/.github/scripts/` contains only
`compose-backport-message.py` and `prepare-backport-checkout.sh`.

```
Before: main build.yml -> .github/scripts/smoke-boot.sh -> release/v1.2 tree -> 127
After: step tolerates / release branch carries the script -> leg runs or skips cleanly
```

Affected call sites in `main`'s `build.yml`:

| Job | Step | Gate |
| --- | --- | --- |
| `amber-integration` | Smoke-test texera-web boots | `if: matrix.os == 'ubuntu-latest'` |
| `amber-integration` | Smoke-test computing-unit-master boots | `if: matrix.os == 'ubuntu-latest'` |
| `platform-integration` | Smoke-test `${{ matrix.service }}` boots | per service |

The `ubuntu-latest` gate is why only that leg breaks: on #8293 the
`amber-integration (macos-latest, 17)` backport leg passed while
`amber-integration (ubuntu-latest, 17)` failed, with **every test green**
(`Tests: succeeded 553, failed 0` and `Passed: Total 6, Failed 0`) — the job
died only on the missing script, after the suites had already passed.

It has stayed hidden because the leg is almost never exercised: a
`release/v1.2` label on its own maps to no stack, so backport build jobs are
skipped. Across the last 30 **Backport Checks** runs, run 33404551297 (#8293)
is the *only* one that ran `amber-integration (ubuntu-latest, 17)` at all — it
reached the step only because `pyamber` had been applied by hand (see #8294).
So any genuine engine / pyamber / platform backport to `release/v1.2` will hit
this.

Worth deciding as part of a fix: whether a backport check should run `main`'s
workflow at all when the release branch's supporting scripts have diverged, or
whether steps like this need an existence guard.

### How to reproduce?

1. Take any PR labelled `release/v1.2`.
2. Add `pyamber` or `engine` (anything mapping to the `amber-integration`
stack in `LABEL_STACKS`).
3. The `backport (release/v1.2) / amber-integration (ubuntu-latest, 17)` job
fails at **Smoke-test texera-web boots** with exit 127, after its test
suites have passed.

Confirming the cause directly:

```bash
git ls-tree -r --name-only origin/main | grep smoke-boot # present
git ls-tree -r --name-only origin/release/v1.2 | grep smoke-boot # absent
```

### Version/Branch

1.3.0-incubating-SNAPSHOT (main)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.