7de675866d
release / build (push) Failing after 1m46s
runs dist.sh inside that local image via a bind mount, andcupload-image.sh pushes the already-built image. The Dockerfile also warms the Gradle dependency cache in a throwaway build stage, and pre-installs the pinned CMake version, so `run-image.sh` doesn't re-download the same Maven dependencies on every run. dist.sh now strips the -pre+meta suffix before writing package.json's version, since Pebble's build tooling parses it strictly as X.Y.Z integers and was rejecting suffixed versions.
39 lines
1.3 KiB
Bash
Executable File
39 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Builds the release build environment image (build-image/Dockerfile)
|
|
# locally, tagged with build-image/VERSION and :latest. Does not push —
|
|
# test it with ./run-image.sh first, then publish with ./upload-image.sh.
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
ROOT="$(pwd)"
|
|
|
|
fail() { echo "PREFLIGHT FAIL: $*" >&2; exit 1; }
|
|
|
|
command -v docker >/dev/null 2>&1 \
|
|
|| fail "docker not found in PATH"
|
|
|
|
[ -f "$ROOT/registry.env" ] \
|
|
|| fail "registry.env not found — copy registry.env.example to registry.env and fill in your cr.ladkau.de credentials"
|
|
|
|
# shellcheck disable=SC1091
|
|
source "$ROOT/registry.env"
|
|
|
|
: "${REGISTRY_IMAGE:?registry.env must set REGISTRY_IMAGE}"
|
|
|
|
VERSION="$(<"$ROOT/build-image/VERSION")"
|
|
[ -n "$VERSION" ] || fail "build-image/VERSION is empty"
|
|
|
|
echo "== Building $REGISTRY_IMAGE:$VERSION =="
|
|
# Context is the repo root (not build-image/) so the Dockerfile's
|
|
# gradle-cache-warm stage can COPY in the companion app's real Gradle
|
|
# project files — see .dockerignore for what's excluded from that context.
|
|
docker build \
|
|
-t "$REGISTRY_IMAGE:$VERSION" \
|
|
-t "$REGISTRY_IMAGE:latest" \
|
|
-f "$ROOT/build-image/Dockerfile" \
|
|
"$ROOT"
|
|
|
|
echo "== Done =="
|
|
echo "Image: $REGISTRY_IMAGE:$VERSION (and :latest)"
|
|
echo "Test it with ./run-image.sh, then publish with ./upload-image.sh"
|