From c73185fcdd16a5c230992ce91308046afb4dc69a Mon Sep 17 00:00:00 2001 From: rcourtman Date: Tue, 11 Nov 2025 10:54:00 +0000 Subject: [PATCH] Fix validate-release.sh path issues after pushd The script does pushd into RELEASE_DIR, so tarball paths should not include the RELEASE_DIR prefix. Also fixed checksum validation glob patterns to exclude .sha256 files from matching. --- scripts/validate-release.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scripts/validate-release.sh b/scripts/validate-release.sh index b4dcd37..53ebe1e 100755 --- a/scripts/validate-release.sh +++ b/scripts/validate-release.sh @@ -170,31 +170,37 @@ success "All ${#required_assets[@]} required release assets present" # Validate tarball contents info "Validating tarball contents..." for arch in linux-amd64 linux-arm64 linux-armv7; do - tar="$RELEASE_DIR/pulse-v${PULSE_VERSION}-${arch}.tar.gz" + tarball="pulse-v${PULSE_VERSION}-${arch}.tar.gz" # Check binaries (note: tarballs use ./ prefix) - tar -tzf "$tar" ./bin/pulse ./bin/pulse-docker-agent ./bin/pulse-host-agent ./bin/pulse-sensor-proxy >/dev/null 2>&1 || { error "$(basename $tar) missing binaries"; exit 1; } + if ! tar -tzf "$tarball" ./bin/pulse ./bin/pulse-docker-agent ./bin/pulse-host-agent ./bin/pulse-sensor-proxy >/dev/null 2>&1; then + error "$(basename $tarball) missing binaries" + exit 1 + fi # Check scripts - tar -tzf "$tar" ./scripts/install-docker-agent.sh ./scripts/install-container-agent.sh ./scripts/install-host-agent.sh ./scripts/install-host-agent.ps1 ./scripts/uninstall-host-agent.sh ./scripts/uninstall-host-agent.ps1 ./scripts/install-sensor-proxy.sh ./scripts/install-docker.sh >/dev/null 2>&1 || { error "$(basename $tar) missing scripts"; exit 1; } + tar -tzf "$tarball" ./scripts/install-docker-agent.sh ./scripts/install-container-agent.sh ./scripts/install-host-agent.sh ./scripts/install-host-agent.ps1 ./scripts/uninstall-host-agent.sh ./scripts/uninstall-host-agent.ps1 ./scripts/install-sensor-proxy.sh ./scripts/install-docker.sh >/dev/null 2>&1 || { error "$(basename $tarball) missing scripts"; exit 1; } # Check VERSION file - tar -tzf "$tar" ./VERSION >/dev/null 2>&1 || { error "$(basename $tar) missing VERSION file"; exit 1; } + tar -tzf "$tarball" ./VERSION >/dev/null 2>&1 || { error "$(basename $tarball) missing VERSION file"; exit 1; } done success "Platform-specific tarballs contain all required files" # Validate universal tarball -tar -tzf "$RELEASE_DIR/pulse-v${PULSE_VERSION}.tar.gz" ./VERSION >/dev/null 2>&1 || { error "Universal tarball missing VERSION file"; exit 1; } +tar -tzf "pulse-v${PULSE_VERSION}.tar.gz" ./VERSION >/dev/null 2>&1 || { error "Universal tarball missing VERSION file"; exit 1; } success "Universal tarball validated" # Validate macOS tarball -tar -tzf "$RELEASE_DIR/pulse-host-agent-v${PULSE_VERSION}-darwin-arm64.tar.gz" pulse-host-agent-darwin-arm64 >/dev/null 2>&1 || { error "macOS tarball validation failed"; exit 1; } +tar -tzf "pulse-host-agent-v${PULSE_VERSION}-darwin-arm64.tar.gz" pulse-host-agent-darwin-arm64 >/dev/null 2>&1 || { error "macOS tarball validation failed"; exit 1; } success "macOS host-agent tarball validated" # Validate checksums exist for all distributable assets info "Validating checksums..." checksum_errors=0 -for asset in $RELEASE_DIR/*.tar.gz $RELEASE_DIR/pulse-sensor-proxy-* $RELEASE_DIR/pulse-host-agent-* $RELEASE_DIR/install.sh; do +for asset in *.tar.gz *.zip *.tgz install.sh pulse-sensor-proxy-linux-* pulse-host-agent-linux-* pulse-host-agent-darwin-* pulse-host-agent-windows-*.exe; do + # Skip checksum files themselves + [[ "$asset" == *.sha256 ]] && continue + if [ ! -f "${asset}.sha256" ]; then error "Missing checksum file: ${asset}.sha256" checksum_errors=$((checksum_errors + 1))