From cea2fdd40fe6f50e2441dfc82a577b59c170f9df Mon Sep 17 00:00:00 2001 From: rcourtman Date: Wed, 4 Feb 2026 11:00:31 +0000 Subject: [PATCH] fix: add FreeBSD binaries to release manifest and validation The previous commit added FreeBSD binaries to the Docker build and release directory but didn't update the manifest generator or validation script. Without this, FreeBSD binaries would be built but not tracked or validated, and release validation would fail on the new entries. Related to #1051 --- scripts/build-release.sh | 2 ++ scripts/validate-release.sh | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/build-release.sh b/scripts/build-release.sh index 15644e45d..e482909b5 100755 --- a/scripts/build-release.sh +++ b/scripts/build-release.sh @@ -494,6 +494,8 @@ host_agents = [ "pulse-host-agent-windows-amd64", "pulse-host-agent-windows-arm64", "pulse-host-agent-windows-386", + "pulse-host-agent-freebsd-amd64", + "pulse-host-agent-freebsd-arm64", ] manifest = { diff --git a/scripts/validate-release.sh b/scripts/validate-release.sh index a79fced93..32f76d2d0 100755 --- a/scripts/validate-release.sh +++ b/scripts/validate-release.sh @@ -135,7 +135,7 @@ if [ "$SKIP_DOCKER" = false ]; then # Validate all required binaries exist and are non-empty info "Checking downloadable binaries in /opt/pulse/bin/..." - docker run --rm --entrypoint /bin/sh "$IMAGE" -c 'set -euo pipefail; cd /opt/pulse/bin; required="pulse pulse-docker-agent pulse-docker-agent-linux-amd64 pulse-docker-agent-linux-arm64 pulse-docker-agent-linux-armv7 pulse-docker-agent-linux-armv6 pulse-docker-agent-linux-386 pulse-host-agent-linux-amd64 pulse-host-agent-linux-arm64 pulse-host-agent-linux-armv7 pulse-host-agent-linux-armv6 pulse-host-agent-linux-386 pulse-host-agent-darwin-amd64 pulse-host-agent-darwin-arm64 pulse-host-agent-windows-amd64.exe pulse-host-agent-windows-amd64 pulse-host-agent-windows-arm64.exe pulse-host-agent-windows-arm64 pulse-host-agent-windows-386.exe pulse-host-agent-windows-386 pulse-agent-linux-amd64 pulse-agent-linux-arm64 pulse-agent-linux-armv7 pulse-agent-linux-armv6 pulse-agent-linux-386 pulse-agent-darwin-amd64 pulse-agent-darwin-arm64 pulse-agent-windows-amd64.exe pulse-agent-windows-amd64 pulse-agent-windows-arm64.exe pulse-agent-windows-arm64 pulse-agent-windows-386.exe pulse-agent-windows-386"; for f in $required; do [ -e "$f" ] || { echo "missing binary $f" >&2; exit 1; }; [ -s "$f" ] || { echo "empty binary $f" >&2; exit 1; }; done; [ "$(readlink pulse-host-agent-windows-amd64)" = "pulse-host-agent-windows-amd64.exe" ] || { echo "windows amd64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-host-agent-windows-arm64)" = "pulse-host-agent-windows-arm64.exe" ] || { echo "windows arm64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-host-agent-windows-386)" = "pulse-host-agent-windows-386.exe" ] || { echo "windows 386 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-agent-windows-amd64)" = "pulse-agent-windows-amd64.exe" ] || { echo "unified agent windows amd64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-agent-windows-arm64)" = "pulse-agent-windows-arm64.exe" ] || { echo "unified agent windows arm64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-agent-windows-386)" = "pulse-agent-windows-386.exe" ] || { echo "unified agent windows 386 symlink broken" >&2; exit 1; }; echo "All binaries present"' || { error "Binary validation failed"; exit 1; } + docker run --rm --entrypoint /bin/sh "$IMAGE" -c 'set -euo pipefail; cd /opt/pulse/bin; required="pulse pulse-docker-agent pulse-docker-agent-linux-amd64 pulse-docker-agent-linux-arm64 pulse-docker-agent-linux-armv7 pulse-docker-agent-linux-armv6 pulse-docker-agent-linux-386 pulse-host-agent-linux-amd64 pulse-host-agent-linux-arm64 pulse-host-agent-linux-armv7 pulse-host-agent-linux-armv6 pulse-host-agent-linux-386 pulse-host-agent-darwin-amd64 pulse-host-agent-darwin-arm64 pulse-host-agent-windows-amd64.exe pulse-host-agent-windows-amd64 pulse-host-agent-windows-arm64.exe pulse-host-agent-windows-arm64 pulse-host-agent-windows-386.exe pulse-host-agent-windows-386 pulse-host-agent-freebsd-amd64 pulse-host-agent-freebsd-arm64 pulse-agent-linux-amd64 pulse-agent-linux-arm64 pulse-agent-linux-armv7 pulse-agent-linux-armv6 pulse-agent-linux-386 pulse-agent-darwin-amd64 pulse-agent-darwin-arm64 pulse-agent-windows-amd64.exe pulse-agent-windows-amd64 pulse-agent-windows-arm64.exe pulse-agent-windows-arm64 pulse-agent-windows-386.exe pulse-agent-windows-386 pulse-agent-freebsd-amd64 pulse-agent-freebsd-arm64"; for f in $required; do [ -e "$f" ] || { echo "missing binary $f" >&2; exit 1; }; [ -s "$f" ] || { echo "empty binary $f" >&2; exit 1; }; done; [ "$(readlink pulse-host-agent-windows-amd64)" = "pulse-host-agent-windows-amd64.exe" ] || { echo "windows amd64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-host-agent-windows-arm64)" = "pulse-host-agent-windows-arm64.exe" ] || { echo "windows arm64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-host-agent-windows-386)" = "pulse-host-agent-windows-386.exe" ] || { echo "windows 386 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-agent-windows-amd64)" = "pulse-agent-windows-amd64.exe" ] || { echo "unified agent windows amd64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-agent-windows-arm64)" = "pulse-agent-windows-arm64.exe" ] || { echo "unified agent windows arm64 symlink broken" >&2; exit 1; }; [ "$(readlink pulse-agent-windows-386)" = "pulse-agent-windows-386.exe" ] || { echo "unified agent windows 386 symlink broken" >&2; exit 1; }; echo "All binaries present"' || { error "Binary validation failed"; exit 1; } success "All downloadable binaries present" # Validate version embedding in Docker image binaries @@ -313,6 +313,10 @@ required_assets=( "pulse-agent-v${PULSE_VERSION}-windows-amd64.zip" "pulse-agent-v${PULSE_VERSION}-windows-arm64.zip" "pulse-agent-v${PULSE_VERSION}-windows-386.zip" + "pulse-host-agent-v${PULSE_VERSION}-freebsd-amd64.tar.gz" + "pulse-host-agent-v${PULSE_VERSION}-freebsd-arm64.tar.gz" + "pulse-agent-v${PULSE_VERSION}-freebsd-amd64.tar.gz" + "pulse-agent-v${PULSE_VERSION}-freebsd-arm64.tar.gz" ) missing_count=0 @@ -357,6 +361,8 @@ expected_agents = { "pulse-host-agent-windows-amd64", "pulse-host-agent-windows-arm64", "pulse-host-agent-windows-386", + "pulse-host-agent-freebsd-amd64", + "pulse-host-agent-freebsd-arm64", } def check_set(name, found): @@ -413,6 +419,8 @@ host_agent_entries=( ./bin/pulse-host-agent-windows-amd64 ./bin/pulse-host-agent-windows-arm64 ./bin/pulse-host-agent-windows-386 + ./bin/pulse-host-agent-freebsd-amd64 + ./bin/pulse-host-agent-freebsd-arm64 ) unified_agent_entries=( ./bin/pulse-agent-linux-amd64 @@ -428,6 +436,8 @@ unified_agent_entries=( ./bin/pulse-agent-windows-amd64 ./bin/pulse-agent-windows-arm64 ./bin/pulse-agent-windows-386 + ./bin/pulse-agent-freebsd-amd64 + ./bin/pulse-agent-freebsd-arm64 ) for arch in "${tar_arches[@]}"; do tarball="pulse-v${PULSE_VERSION}-${arch}.tar.gz"