diff --git a/.github/workflows/build-next.yml b/.github/workflows/build-next.yml index 1fc98ab7..444da3f0 100644 --- a/.github/workflows/build-next.yml +++ b/.github/workflows/build-next.yml @@ -58,7 +58,7 @@ jobs: run: npm run build - 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 id: build-push-image diff --git a/Dockerfile-prebuilt b/Dockerfile-prebuilt index c7a005bb..a8a517d1 100644 --- a/Dockerfile-prebuilt +++ b/Dockerfile-prebuilt @@ -1,5 +1,5 @@ # 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 diff --git a/scripts/development/build-binaries.sh b/scripts/development/build-binaries.sh index c64e4ecf..05299eff 100755 --- a/scripts/development/build-binaries.sh +++ b/scripts/development/build-binaries.sh @@ -2,6 +2,15 @@ set -eu cd backend 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 build_platform() { target=$1 @@ -27,7 +36,7 @@ build_platform() { env_vars="${env_vars} GOARM=${arm_version}" fi - # Build the binary + # Build the binary eval "${env_vars} go build \ -ldflags='-X github.com/pocket-id/pocket-id/backend/internal/common.Version=${pocket_id_version} -buildid ${pocket_id_version}' \ -o \"${output_dir}\" \ @@ -37,22 +46,29 @@ build_platform() { printf "Done\n" } -# linux builds -build_platform "linux-amd64" "linux" "amd64" "" -build_platform "linux-386" "linux" "386" "" -build_platform "linux-arm64" "linux" "arm64" "" -build_platform "linux-armv7" "linux" "arm" "7" +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 + build_platform "linux-amd64" "linux" "amd64" "" + build_platform "linux-386" "linux" "386" "" + build_platform "linux-arm64" "linux" "arm64" "" + build_platform "linux-armv7" "linux" "arm" "7" -# macOS builds -build_platform "macos-x64" "darwin" "amd64" "" -build_platform "macos-arm64" "darwin" "arm64" "" + # macOS builds + build_platform "macos-x64" "darwin" "amd64" "" + build_platform "macos-arm64" "darwin" "arm64" "" -# Windows builds -build_platform "windows-x64" "windows" "amd64" "" -build_platform "windows-arm64" "windows" "arm64" "" + # Windows builds + build_platform "windows-x64" "windows" "amd64" "" + build_platform "windows-arm64" "windows" "arm64" "" -# FreeBSD builds -build_platform "freebsd-amd64" "freebsd" "amd64" "" -build_platform "freebsd-arm64" "freebsd" "arm64" "" + # FreeBSD builds + build_platform "freebsd-amd64" "freebsd" "amd64" "" + build_platform "freebsd-arm64" "freebsd" "arm64" "" +fi echo "Compilation done"