diff --git a/.gitea/workflows/build-release.yml b/.gitea/workflows/build-release.yml index ab306152..95d2d1c1 100644 --- a/.gitea/workflows/build-release.yml +++ b/.gitea/workflows/build-release.yml @@ -154,14 +154,19 @@ jobs: # # `if [ -f "dir/"*.ext ]` was also wrong on its own terms: with more # than one match `test` gets extra arguments and fails. - shopt -s nullglob + # + # No `shopt -s nullglob` here: the runner executes `run:` blocks with + # POSIX sh, where shopt does not exist -- it exited 127 and killed the + # step (which is why v0.9.0 and v0.9.1 built but never published). + # Without nullglob an unmatched pattern stays literal, so test each + # candidate instead. Same POSIX-only rule as traceability-check.yml. for bundle in \ src-tauri/target/release/bundle/appimage/*.AppImage \ src-tauri/target/release/bundle/deb/*.deb \ src-tauri/target/release/bundle/rpm/*.rpm; do + [ -e "$bundle" ] || continue cp -v "$bundle" dist/linux/ done - shopt -u nullglob # A release with no Linux package is a failure, not a quiet success. if [ -z "$(ls -A dist/linux/)" ]; then