deploy-infra.yml cannot complete: Build commit Runner / Build Runner (linux-amd64)
fails at Extract commit libboxlite.a, right after the C SDK artifact downloads
successfully.
Measured on run
30789214479 (ref
2888df0a, the first run able to start after #1129):
Artifact download completed successfully. ← c-sdk-linux-x64-gnu, digest matched
...
find: '/tmp/snap-private-tmp': Permission denied
find: '/tmp/systemd-private-…-ModemManager.service-tIrfWw': Permission denied
##[error]Process completed with exit code 1.
deploy was skipped, so no dev deploy can complete.
Cause
.github/workflows/build-runner-binary.yml:148 (at 2888df0a):
library=$(find /tmp -path '*/lib/libboxlite.a' -print -quit)
Scanning all of /tmp walks root-owned sibling directories the runner user cannot
read. GNU find's -quit exits zero only if no errors have occurred, so the
permission errors put a non-zero status on the assignment even when the library was
found, and set -euo pipefail kills the step with the file sitting on disk.
The release branch of the same step, 17 lines up, does not search — it computes the
path from the archive name (:131). build-c.yml:207,220 packages exactly one
top-level directory named after the archive, so the derived path is always available.
Why it was never caught
libboxlite_source: artifact has exactly one caller — deploy-infra.yml — and that
workflow could not start at all until #1129 merged. The release arm, which every
other caller uses, was unaffected.
actionlint does not flag it. No test covered this step.
deploy-infra.ymlcannot complete:Build commit Runner / Build Runner (linux-amd64)fails at
Extract commit libboxlite.a, right after the C SDK artifact downloadssuccessfully.
Measured on run
30789214479 (ref
2888df0a, the first run able to start after #1129):deploywas skipped, so no dev deploy can complete.Cause
.github/workflows/build-runner-binary.yml:148(at2888df0a):library=$(find /tmp -path '*/lib/libboxlite.a' -print -quit)Scanning all of
/tmpwalks root-owned sibling directories the runner user cannotread. GNU
find's-quitexits zero only if no errors have occurred, so thepermission errors put a non-zero status on the assignment even when the library was
found, and
set -euo pipefailkills the step with the file sitting on disk.The
releasebranch of the same step, 17 lines up, does not search — it computes thepath from the archive name (
:131).build-c.yml:207,220packages exactly onetop-level directory named after the archive, so the derived path is always available.
Why it was never caught
libboxlite_source: artifacthas exactly one caller —deploy-infra.yml— and thatworkflow could not start at all until #1129 merged. The
releasearm, which everyother caller uses, was unaffected.
actionlintdoes not flag it. No test covered this step.