ci/cd: only build required binaries for next image

This commit is contained in:
Elias Schneider
2025-06-16 16:09:09 +02:00
parent 5814549cbe
commit 3717a663d9
3 changed files with 33 additions and 17 deletions

View File

@@ -58,7 +58,7 @@ jobs:
run: npm run build run: npm run build
- name: Build binaries - name: Build binaries
run: sh scripts/development/build-binaries.sh run: sh scripts/development/build-binaries.sh --docker-only
- name: Build and push container image - name: Build and push container image
id: build-push-image id: build-push-image

View File

@@ -1,5 +1,5 @@
# This Dockerfile embeds a pre-built binary for the given Linux architecture # This Dockerfile embeds a pre-built binary for the given Linux architecture
# Binaries must be built using ./scripts/development/build-binaries.sh first # Binaries must be built using ""./scripts/development/build-binaries.sh --docker-only"
FROM alpine FROM alpine

View File

@@ -2,6 +2,15 @@ set -eu
cd backend cd backend
mkdir -p .bin mkdir -p .bin
# Check for --docker-only flag
DOCKER_ONLY=false
for arg in "$@"; do
if [ "$arg" = "--docker-only" ]; then
DOCKER_ONLY=true
break
fi
done
# Function to build for a specific platform # Function to build for a specific platform
build_platform() { build_platform() {
target=$1 target=$1
@@ -27,7 +36,7 @@ build_platform() {
env_vars="${env_vars} GOARM=${arm_version}" env_vars="${env_vars} GOARM=${arm_version}"
fi fi
# Build the binary # Build the binary
eval "${env_vars} go build \ eval "${env_vars} go build \
-ldflags='-X github.com/pocket-id/pocket-id/backend/internal/common.Version=${pocket_id_version} -buildid ${pocket_id_version}' \ -ldflags='-X github.com/pocket-id/pocket-id/backend/internal/common.Version=${pocket_id_version} -buildid ${pocket_id_version}' \
-o \"${output_dir}\" \ -o \"${output_dir}\" \
@@ -37,6 +46,12 @@ build_platform() {
printf "Done\n" printf "Done\n"
} }
if [ "$DOCKER_ONLY" = true ]; then
echo "Building for Docker platforms only (arm64 and amd64)..."
build_platform "linux-amd64" "linux" "amd64" ""
build_platform "linux-arm64" "linux" "arm64" ""
else
echo "Building for all platforms..."
# linux builds # linux builds
build_platform "linux-amd64" "linux" "amd64" "" build_platform "linux-amd64" "linux" "amd64" ""
build_platform "linux-386" "linux" "386" "" build_platform "linux-386" "linux" "386" ""
@@ -54,5 +69,6 @@ build_platform "windows-arm64" "windows" "arm64" ""
# FreeBSD builds # FreeBSD builds
build_platform "freebsd-amd64" "freebsd" "amd64" "" build_platform "freebsd-amd64" "freebsd" "amd64" ""
build_platform "freebsd-arm64" "freebsd" "arm64" "" build_platform "freebsd-arm64" "freebsd" "arm64" ""
fi
echo "Compilation done" echo "Compilation done"