From babcdec535e8de017804238b2e36ecb22c5acfc1 Mon Sep 17 00:00:00 2001 From: Nils Lehnen <30603423+iderex@users.noreply.github.com> Date: Sun, 30 Aug 2026 10:23:49 +0200 Subject: [PATCH] Run the published binary from the directory it was downloaded into The smoke job resolved the downloaded binary from inside `download/` and wrote that result into the environment file as `./lab__`. The platform starts every step in the workspace and a `cd` lives and dies with the step that runs it, so the step that executes the binary read the name one directory too high and the file was not there. What makes it worth finding before a release rather than during one is what the failure looks like when it happens. The run step treats any non-zero code as the binary having refused the tree, so an artefact that was never executed at all would have reddened all three matrix entries with a message about record 0011. Reproduced by standing the two steps up as separate shells from a workspace holding `download/lab_v0.0.1_linux_amd64`: chmod: cannot access './lab_v0.0.1_linux_amd64': No such file or directory code=127 With the path written relative to the workspace instead, the same reproduction executes the binary against a fresh clone of this repository and every assertion in that step passes: code=0 examined fresh-clone 1 experiment directory walked, 1 record read 27 decision records read 0 refused Nothing in this tree refuses the next one. Both legs of that workflow run on a tag or on a published release, so their steps reach no pull request, and this was found by reading the file rather than by a check. Refs #43 Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com> --- .github/workflows/smoke.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index 78b36c6..8953c17 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -224,7 +224,16 @@ jobs: exit 1 fi echo "${PLATFORM}: $(basename "${binary}") matches its published digest ${want}" - echo "BINARY=${binary}" >> "${GITHUB_ENV}" + # THE PATH HANDED ON IS RELATIVE TO THE WORKSPACE AND NEVER TO THE + # DIRECTORY THIS STEP IS STANDING IN. The `cd` above lives and dies + # with this step: the platform starts every step in the workspace, so + # a `find .` result written into the environment file resolves one + # directory too high when the step that executes it reads it back. + # What that produced was not a missing file anybody would recognise. + # The run step reports a non-zero code as the binary having refused + # the tree, so a released artefact that was never executed at all + # reddened the smoke job with a message about record 0011. + echo "BINARY=download/$(basename "${binary}")" >> "${GITHUB_ENV}" - name: Clone the default branch fresh # A clone rather than a checkout of this repository, because what an