mirror of
https://github.com/pocket-id/pocket-id.git
synced 2025-12-24 01:11:52 +03:00
ci/cd: only build required binaries for next image
This commit is contained in:
2
.github/workflows/build-next.yml
vendored
2
.github/workflows/build-next.yml
vendored
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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,22 +46,29 @@ build_platform() {
|
|||||||
printf "Done\n"
|
printf "Done\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
# linux builds
|
if [ "$DOCKER_ONLY" = true ]; then
|
||||||
build_platform "linux-amd64" "linux" "amd64" ""
|
echo "Building for Docker platforms only (arm64 and amd64)..."
|
||||||
build_platform "linux-386" "linux" "386" ""
|
build_platform "linux-amd64" "linux" "amd64" ""
|
||||||
build_platform "linux-arm64" "linux" "arm64" ""
|
build_platform "linux-arm64" "linux" "arm64" ""
|
||||||
build_platform "linux-armv7" "linux" "arm" "7"
|
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
|
# macOS builds
|
||||||
build_platform "macos-x64" "darwin" "amd64" ""
|
build_platform "macos-x64" "darwin" "amd64" ""
|
||||||
build_platform "macos-arm64" "darwin" "arm64" ""
|
build_platform "macos-arm64" "darwin" "arm64" ""
|
||||||
|
|
||||||
# Windows builds
|
# Windows builds
|
||||||
build_platform "windows-x64" "windows" "amd64" ""
|
build_platform "windows-x64" "windows" "amd64" ""
|
||||||
build_platform "windows-arm64" "windows" "arm64" ""
|
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"
|
||||||
|
|||||||
Reference in New Issue
Block a user