Добавлены скрипты сборки для кроссплатформенных двоичных файлов и лицензия GPL.
- Добавлен файл LICENSE с лицензией GNU General Public License версии 3.0. - Создан скрипт PowerShell (build-all.ps1) для сборки двоичных файлов Windows и Linux из Windows с использованием кросс-компиляции. - Разработан скрипт сборки Linux (build-linux.sh) для сборки двоичных файлов Linux. - Реализован скрипт PowerShell (build-windows.ps1) для сборки двоичных файлов Windows. - Каждый скрипт сборки включает упаковку и генерацию контрольной суммы SHA256 для двоичных файлов.
This commit is contained in:
76
scripts/build-linux.sh
Normal file
76
scripts/build-linux.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
# Bash script for building Linux binaries
|
||||
# Usage: ./scripts/build-linux.sh
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
# Read version from VERSION file
|
||||
VERSION=$(cat VERSION | tr -d '[:space:]')
|
||||
|
||||
BINARY="compress"
|
||||
OUTPUT_DIR="dist"
|
||||
|
||||
echo "Building compress $VERSION for Linux..."
|
||||
|
||||
# Create output directory if it doesn't exist
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
# Build for Linux amd64
|
||||
echo ""
|
||||
echo "Building Linux amd64..."
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o "$OUTPUT_DIR/${BINARY}-linux-amd64" ./cmd
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to build Linux amd64"
|
||||
exit 1
|
||||
fi
|
||||
chmod +x "$OUTPUT_DIR/${BINARY}-linux-amd64"
|
||||
|
||||
# Build for Linux arm64
|
||||
echo "Building Linux arm64..."
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o "$OUTPUT_DIR/${BINARY}-linux-arm64" ./cmd
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to build Linux arm64"
|
||||
exit 1
|
||||
fi
|
||||
chmod +x "$OUTPUT_DIR/${BINARY}-linux-arm64"
|
||||
|
||||
echo ""
|
||||
echo "Packaging Linux releases..."
|
||||
|
||||
# Package Linux amd64
|
||||
echo "Packaging Linux amd64..."
|
||||
TEMP_DIR="$OUTPUT_DIR/temp-linux-amd64"
|
||||
mkdir -p "$TEMP_DIR"
|
||||
cp "$OUTPUT_DIR/${BINARY}-linux-amd64" "$TEMP_DIR/${BINARY}"
|
||||
[ -f "LICENSE" ] && cp "LICENSE" "$TEMP_DIR/"
|
||||
[ -f "README.md" ] && cp "README.md" "$TEMP_DIR/"
|
||||
[ -f "config.yaml.example" ] && cp "config.yaml.example" "$TEMP_DIR/"
|
||||
tar -czf "$OUTPUT_DIR/${BINARY}-${VERSION}-linux-amd64.tar.gz" -C "$TEMP_DIR" .
|
||||
rm -rf "$TEMP_DIR"
|
||||
|
||||
# Package Linux arm64
|
||||
echo "Packaging Linux arm64..."
|
||||
TEMP_DIR="$OUTPUT_DIR/temp-linux-arm64"
|
||||
mkdir -p "$TEMP_DIR"
|
||||
cp "$OUTPUT_DIR/${BINARY}-linux-arm64" "$TEMP_DIR/${BINARY}"
|
||||
[ -f "LICENSE" ] && cp "LICENSE" "$TEMP_DIR/"
|
||||
[ -f "README.md" ] && cp "README.md" "$TEMP_DIR/"
|
||||
[ -f "config.yaml.example" ] && cp "config.yaml.example" "$TEMP_DIR/"
|
||||
tar -czf "$OUTPUT_DIR/${BINARY}-${VERSION}-linux-arm64.tar.gz" -C "$TEMP_DIR" .
|
||||
rm -rf "$TEMP_DIR"
|
||||
|
||||
echo ""
|
||||
echo "Generating SHA256 checksums..."
|
||||
|
||||
# Generate SHA256 checksums
|
||||
sha256sum "$OUTPUT_DIR/${BINARY}-${VERSION}-linux-amd64.tar.gz" | awk '{print $1}' > "$OUTPUT_DIR/${BINARY}-${VERSION}-linux-amd64.tar.gz.sha256"
|
||||
sha256sum "$OUTPUT_DIR/${BINARY}-${VERSION}-linux-arm64.tar.gz" | awk '{print $1}' > "$OUTPUT_DIR/${BINARY}-${VERSION}-linux-arm64.tar.gz.sha256"
|
||||
|
||||
echo ""
|
||||
echo "Build complete! Artifacts:"
|
||||
echo " - $OUTPUT_DIR/${BINARY}-${VERSION}-linux-amd64.tar.gz"
|
||||
echo " - $OUTPUT_DIR/${BINARY}-${VERSION}-linux-amd64.tar.gz.sha256"
|
||||
echo " - $OUTPUT_DIR/${BINARY}-${VERSION}-linux-arm64.tar.gz"
|
||||
echo " - $OUTPUT_DIR/${BINARY}-${VERSION}-linux-arm64.tar.gz.sha256"
|
||||
echo ""
|
||||
echo "Done!"
|
||||
Reference in New Issue
Block a user