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.
47 lines
1.5 KiB
Bash
Executable File
47 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Runs dist.sh inside the local build-image container, mirroring what the
|
|
# Gitea Actions release workflow does — useful for testing build-image
|
|
# changes (or dist.sh/build_vice.sh/build_nibtools.sh changes) locally
|
|
# before pushing anything to cr.ladkau.de.
|
|
#
|
|
# Usage: ./run-image.sh [VERSION]
|
|
# VERSION is passed through to dist.sh; omit it for dist.sh's own
|
|
# git-tag-based default (see dist.sh's header comment).
|
|
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}"
|
|
|
|
IMAGE_TAG="$(<"$ROOT/build-image/VERSION")"
|
|
[ -n "$IMAGE_TAG" ] || fail "build-image/VERSION is empty"
|
|
IMAGE="$REGISTRY_IMAGE:$IMAGE_TAG"
|
|
|
|
docker image inspect "$IMAGE" >/dev/null 2>&1 \
|
|
|| fail "$IMAGE not found locally — run ./build-image.sh first"
|
|
|
|
VERSION="${1:-${VERSION:-}}"
|
|
|
|
echo "== Running dist.sh inside $IMAGE =="
|
|
docker run --rm \
|
|
-v "$ROOT:/workspace" \
|
|
-w /workspace \
|
|
-e VERSION="$VERSION" \
|
|
"$IMAGE" \
|
|
bash -c 'git config --global --add safe.directory /workspace && ./dist.sh'
|
|
|
|
echo "== Done — artifacts in dist/ =="
|
|
ls -la "$ROOT/dist"
|