release: v0.1.5
Build Packages / Build .txz packages (push) Successful in 8m36s
Lint / ShellCheck (push) Successful in 10s
Lint / Validate .plg XML (push) Successful in 12s
Lint / EditorConfig (push) Successful in 6s
Release / Build release packages (push) Successful in 7m50s
Release / Publish Gitea Release (push) Failing after 6s
Build Packages / Build .txz packages (push) Successful in 8m36s
Lint / ShellCheck (push) Successful in 10s
Lint / Validate .plg XML (push) Successful in 12s
Lint / EditorConfig (push) Successful in 6s
Release / Build release packages (push) Successful in 7m50s
Release / Publish Gitea Release (push) Failing after 6s
Fixes a real bug in scripts/release.sh's per-package entity matching found while cutting this release: "podman"'s own glob also matched podman-compose's file (podman is a literal prefix of podman-compose), and find | head -n1's unsorted output order let podman-compose's package silently win the "podman" entity on this run. Now explicitly skips any match that actually belongs to a different, more specific component name also in the COMPONENTS list. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+25
-1
@@ -85,7 +85,31 @@ sed -i -E "s|(<!ENTITY baseURL[[:space:]]+\")[^\"]*(\">)|\1${RELEASE_BASE_URL}\2
|
||||
for name in "${COMPONENTS[@]}"; do
|
||||
# dist/ contains files like podman-6.0.1-x86_64-1_unraidpodman.txz — find
|
||||
# the one for this component (there should be exactly one per release).
|
||||
txz_path=$(find "$DIST_DIR" -maxdepth 1 -name "${name}-*-*-*.txz" | head -n1)
|
||||
# NOT `find ... | head -n1`: "podman"'s own glob (podman-*-*-*.txz) also
|
||||
# matches podman-compose's file (podman-compose-*-*-*.txz), since
|
||||
# "podman" is a literal prefix of "podman-compose" — find's output order
|
||||
# is filesystem-dependent, not sorted, so head -n1 silently picked
|
||||
# podman-compose's package for the "podman" entity on one real run,
|
||||
# publishing a release whose podman.plg pointed at the wrong .txz for
|
||||
# the actual podman package entirely. Explicitly skip any match that
|
||||
# actually belongs to a DIFFERENT, more specific name also in
|
||||
# COMPONENTS (i.e. itself prefixed by another component's name).
|
||||
txz_path=""
|
||||
for candidate in "$DIST_DIR"/"${name}"-*-*-*.txz; do
|
||||
[ -e "$candidate" ] || continue
|
||||
base=$(basename "$candidate")
|
||||
belongs_to_other=0
|
||||
for other in "${COMPONENTS[@]}"; do
|
||||
if [ "$other" != "$name" ] && [ "${base#"$other"-}" != "$base" ]; then
|
||||
belongs_to_other=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ "$belongs_to_other" -eq 0 ]; then
|
||||
txz_path="$candidate"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z "$txz_path" ]; then
|
||||
echo "!! No built .txz found for component '$name' in $DIST_DIR" >&2
|
||||
echo "!! Did scripts/build-packages.sh run successfully for it?" >&2
|
||||
|
||||
Reference in New Issue
Block a user