feat: implement multi-architecture release strategy

- Updated build-release.sh to create universal tarball with all architectures
- Use pulse-wrapper.sh as main executable that auto-detects architecture
- Wrapper automatically cleans up unused architecture binaries
- Single tarball works for amd64, arm64, and armv7
- Compatible with Proxmox helper script expectations
This commit is contained in:
Pulse Monitor 2025-08-04 08:20:01 +00:00
parent 994d5eeeaa
commit 46fafdff3d
3 changed files with 10 additions and 3 deletions

View file

@ -1 +1 @@
4.0.0-rc.1-test
4.0.0-test

View file

@ -52,8 +52,10 @@ for build_name in "${!builds[@]}"; do
# Copy files
cp "$BUILD_DIR/pulse-$build_name" "$staging_dir/pulse"
mkdir -p "$staging_dir/frontend-modern"
cp -r frontend-modern/dist "$staging_dir/frontend-modern/"
cp README.md LICENSE pulse.service install.sh "$staging_dir/"
cp README.md LICENSE install.sh "$staging_dir/"
# Note: pulse.service might not exist in Go version
# Create tarball
cd "$staging_dir"
@ -86,8 +88,10 @@ for build_name in "${!builds[@]}"; do
done
# Copy common files
mkdir -p "$universal_staging/frontend-modern"
cp -r frontend-modern/dist "$universal_staging/frontend-modern/"
cp README.md LICENSE pulse.service install.sh pulse-wrapper.sh "$universal_staging/"
cp README.md LICENSE install.sh pulse-wrapper.sh "$universal_staging/"
echo "$VERSION" > "$universal_staging/VERSION"
# Rename wrapper to 'pulse' for seamless usage
cp pulse-wrapper.sh "$universal_staging/pulse"

View file

@ -30,6 +30,9 @@ if [ ! -f "$SCRIPT_DIR/$BINARY" ]; then
exit 1
fi
# Make the correct binary executable (in case permissions were lost)
chmod +x "$SCRIPT_DIR/$BINARY" 2>/dev/null || true
# On first run, clean up other architecture binaries to save space
if [ -f "$SCRIPT_DIR/.first-run-cleanup" ]; then
echo "Cleaning up unused architecture binaries..."