Reduce release assets by removing duplicates

Removed:
- Individual .sha256 files (checksums.txt already contains all checksums)
- Standalone binaries without version numbers (users should download versioned tarballs/zips)

Standalone binaries are only needed in Docker images for the /download/ endpoint.
GitHub releases should only contain versioned archives for user downloads.

This reduces release assets from ~54 files to ~19 files per release.
This commit is contained in:
rcourtman 2025-11-11 17:26:00 +00:00
parent 8f0a548e3d
commit fa8a8f3af3
2 changed files with 8 additions and 44 deletions

View file

@ -235,7 +235,7 @@ jobs:
echo "release_url=$(gh release view ${TAG} --json url -q .url)" >> $GITHUB_OUTPUT
echo "tag=${TAG}" >> $GITHUB_OUTPUT
- name: Upload checksums.txt first
- name: Upload checksums.txt
env:
GH_TOKEN: ${{ github.token }}
run: |
@ -244,10 +244,6 @@ jobs:
echo "Uploading checksums.txt..."
gh release upload "${TAG}" release/checksums.txt
# Also upload individual .sha256 files
echo "Uploading individual checksum files..."
gh release upload "${TAG}" release/*.sha256
- name: Upload release assets
env:
GH_TOKEN: ${{ github.token }}
@ -271,15 +267,6 @@ jobs:
# Upload install.sh
gh release upload "${TAG}" release/install.sh
# Upload standalone binaries (for direct download by installers)
echo "Uploading standalone binaries..."
# Upload binaries without .sha256 files (those were already uploaded)
for file in release/pulse-sensor-proxy-* release/pulse-host-agent-*; do
if [[ ! "$file" =~ \.sha256$ ]] && [[ ! "$file" =~ \.tar\.gz$ ]] && [[ ! "$file" =~ \.zip$ ]]; then
gh release upload "${TAG}" "$file"
fi
done
- name: Output release information
run: |
echo "✅ Release draft created successfully!"

View file

@ -289,26 +289,9 @@ cd ../..
# Cleanup
rm -rf "$universal_dir"
# Copy standalone pulse-sensor-proxy binaries to release directory
# These are needed by install-sensor-proxy.sh installer script
echo "Copying standalone pulse-sensor-proxy binaries..."
for build_name in "${!builds[@]}"; do
cp "$BUILD_DIR/pulse-sensor-proxy-$build_name" "$RELEASE_DIR/"
done
# Copy standalone pulse-host-agent binaries to release directory
# These are needed for manual host-agent installation without a running Pulse server
echo "Copying standalone pulse-host-agent binaries..."
for build_name in "${!builds[@]}"; do
cp "$BUILD_DIR/pulse-host-agent-$build_name" "$RELEASE_DIR/"
done
# Also copy standalone macOS and Windows host-agent binaries
cp "$BUILD_DIR/pulse-host-agent-darwin-amd64" "$RELEASE_DIR/"
cp "$BUILD_DIR/pulse-host-agent-darwin-arm64" "$RELEASE_DIR/"
cp "$BUILD_DIR/pulse-host-agent-windows-amd64.exe" "$RELEASE_DIR/"
cp "$BUILD_DIR/pulse-host-agent-windows-arm64.exe" "$RELEASE_DIR/"
cp "$BUILD_DIR/pulse-host-agent-windows-386.exe" "$RELEASE_DIR/"
# NOTE: Standalone binaries are NOT copied to release directory
# They are only included in Docker images for /download/ endpoints
# Users should download versioned tarballs/zips from GitHub releases instead
# Optionally package Helm chart
if [ "${SKIP_HELM_PACKAGE:-0}" != "1" ]; then
@ -327,24 +310,18 @@ fi
echo "Copying install.sh to release directory..."
cp install.sh "$RELEASE_DIR/"
# Generate checksums (include tarballs, helm chart, standalone binaries, and install.sh)
# Generate checksums (include tarballs, zip files, helm chart, and install.sh)
cd "$RELEASE_DIR"
shopt -s nullglob extglob
# Match tarballs, then standalone binaries (excluding .tar.gz and .sha256), then install.sh
checksum_files=( *.tar.gz pulse-sensor-proxy-!(*.tar.gz|*.sha256) pulse-host-agent-!(*.tar.gz|*.sha256) install.sh )
# Match all tarballs, zip files, and install.sh
checksum_files=( *.tar.gz *.zip install.sh )
if compgen -G "pulse-*.tgz" > /dev/null; then
checksum_files+=( pulse-*.tgz )
fi
if [ ${#checksum_files[@]} -eq 0 ]; then
echo "Warning: no release artifacts found to checksum."
else
# Generate individual .sha256 files for each asset (required by install.sh)
for file in "${checksum_files[@]}"; do
sha256sum "$file" > "${file}.sha256"
done
# Also generate combined checksums.txt for convenience
# Sort checksums by filename for deterministic output (prevents #671 checksum mismatches)
# Generate checksums.txt with sorted output for deterministic results (prevents #671 checksum mismatches)
sha256sum "${checksum_files[@]}" | sort -k 2 > checksums.txt
if [ -n "${SIGNING_KEY_ID:-}" ]; then
if command -v gpg >/dev/null 2>&1; then