mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-26 10:31:17 +00:00
98 lines
2.9 KiB
Bash
Executable file
98 lines
2.9 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
# Get version from VERSION file
|
|
VERSION=$(cat VERSION)
|
|
|
|
# Colors
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}Building Pulse v${VERSION} release binaries${NC}"
|
|
|
|
# Create release directory
|
|
mkdir -p release
|
|
|
|
# Build frontend first
|
|
echo -e "${BLUE}Building frontend...${NC}"
|
|
cd frontend-modern
|
|
npm run build
|
|
cd ..
|
|
|
|
# Copy frontend to internal/api for embedding
|
|
echo -e "${BLUE}Copying frontend for embedding...${NC}"
|
|
rm -rf internal/api/frontend-modern
|
|
mkdir -p internal/api/frontend-modern
|
|
cp -r frontend-modern/dist internal/api/frontend-modern/
|
|
|
|
# Build for multiple architectures
|
|
echo -e "${BLUE}Building linux/amd64...${NC}"
|
|
GOOS=linux GOARCH=amd64 go build -o release/pulse-linux-amd64 ./cmd/pulse
|
|
|
|
echo -e "${BLUE}Building linux/arm64...${NC}"
|
|
GOOS=linux GOARCH=arm64 go build -o release/pulse-linux-arm64 ./cmd/pulse
|
|
|
|
echo -e "${BLUE}Building linux/arm (v7)...${NC}"
|
|
GOOS=linux GOARCH=arm GOARM=7 go build -o release/pulse-linux-armv7 ./cmd/pulse
|
|
|
|
# Create tarballs for each architecture
|
|
echo -e "${BLUE}Creating architecture-specific tarballs...${NC}"
|
|
|
|
# AMD64
|
|
cd release
|
|
mkdir -p temp-amd64
|
|
cp pulse-linux-amd64 temp-amd64/pulse
|
|
cp ../VERSION temp-amd64/VERSION
|
|
mkdir -p temp-amd64/frontend-modern
|
|
cp -r ../internal/api/frontend-modern/dist/* temp-amd64/frontend-modern/
|
|
tar -czf pulse-v${VERSION}-linux-amd64.tar.gz -C temp-amd64 .
|
|
rm -rf temp-amd64
|
|
|
|
# ARM64
|
|
mkdir -p temp-arm64
|
|
cp pulse-linux-arm64 temp-arm64/pulse
|
|
cp ../VERSION temp-arm64/VERSION
|
|
mkdir -p temp-arm64/frontend-modern
|
|
cp -r ../internal/api/frontend-modern/dist/* temp-arm64/frontend-modern/
|
|
tar -czf pulse-v${VERSION}-linux-arm64.tar.gz -C temp-arm64 .
|
|
rm -rf temp-arm64
|
|
|
|
# ARMv7
|
|
mkdir -p temp-armv7
|
|
cp pulse-linux-armv7 temp-armv7/pulse
|
|
cp ../VERSION temp-armv7/VERSION
|
|
mkdir -p temp-armv7/frontend-modern
|
|
cp -r ../internal/api/frontend-modern/dist/* temp-armv7/frontend-modern/
|
|
tar -czf pulse-v${VERSION}-linux-armv7.tar.gz -C temp-armv7 .
|
|
rm -rf temp-armv7
|
|
|
|
# Create universal tarball with all binaries
|
|
echo -e "${BLUE}Creating universal tarball...${NC}"
|
|
mkdir -p temp-universal
|
|
cp pulse-linux-amd64 temp-universal/
|
|
cp pulse-linux-arm64 temp-universal/
|
|
cp pulse-linux-armv7 temp-universal/
|
|
ln -sf pulse-linux-amd64 temp-universal/pulse
|
|
cp ../VERSION temp-universal/VERSION
|
|
mkdir -p temp-universal/frontend-modern
|
|
cp -r ../internal/api/frontend-modern/dist/* temp-universal/frontend-modern/
|
|
tar -czf pulse-v${VERSION}.tar.gz -C temp-universal .
|
|
rm -rf temp-universal
|
|
|
|
# Generate checksums
|
|
echo -e "${BLUE}Generating checksums...${NC}"
|
|
sha256sum pulse-v${VERSION}-linux-amd64.tar.gz > checksums.txt
|
|
sha256sum pulse-v${VERSION}-linux-arm64.tar.gz >> checksums.txt
|
|
sha256sum pulse-v${VERSION}-linux-armv7.tar.gz >> checksums.txt
|
|
sha256sum pulse-v${VERSION}.tar.gz >> checksums.txt
|
|
|
|
cd ..
|
|
|
|
echo -e "${GREEN}✓ Build complete!${NC}"
|
|
echo ""
|
|
echo "Release files:"
|
|
ls -lh release/
|
|
echo ""
|
|
echo "Checksums:"
|
|
cat release/checksums.txt
|