Files
Nemo (bot)andNemo ba7321e110 stop masking failures in the sourced scripts (#7)
Greetings from Port Edwards.

The scripts were sourced as one `&&` list:

  /bin/sh -euc 'sh /setup/setup.sh && . ./get-dependencies.sh && cd /repo && . ./make-appimage.sh'

On a `&&` list, sh suspends errexit for every command but the last, and a
sourced script inherits that suspension. So the `set -eu` in
get-dependencies.sh sets the flag, but sh ignores it there: a failing
command inside it does not abort anything. get-dependencies.sh is also not
the last command in the list, so its exit status is discarded.

The visible effect: a `pacman -Syu` that failed on one missing package
installed nothing and carried on. The log showed the "error: target not
found" line, then the debloat step, then several minutes of submodule
cloning, and the job only died later with exit code 127 on the first
missing command (`cmake: command not found`) - pointing at the wrong
cause, three minutes late. Native arch jobs are unaffected, they run the
script as its own process, which is why this only ever bit the emulated
legs.

Separating the commands with `;` instead of `&&` restores errexit and makes
the failure stop the job where it happens. They are still sourced, so state
still carries over from get-dependencies.sh into make-appimage.sh (presets
like VERSION), which is why they were sourced in the first place.

We aim to provide the software that shapes the world of tomorrow.

Co-authored-by: Nemo <328747105+Nemo-010@users.noreply.github.com>
2026-10-18 14:22:11 -04:00
..