Files
watermaps/deploy/scripts/tests/image-references.test.sh
T
BuTzZ c9a20aacd7
Test and publish container images / test (push) Successful in 2m50s
Test and publish container images / publish (push) Failing after 54s
Reorganised deployment scripts and added rollback functionality. Updated documentation and workflow for container image builds.
2026-07-25 12:36:35 +02:00

57 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
TEST_DIR="$(mktemp -d)"
trap 'rm -rf "$TEST_DIR"' EXIT
# shellcheck source=../common.sh
source "$ROOT_DIR/deploy/scripts/common.sh"
revision="0123456789abcdef0123456789abcdef01234567"
valid_env="$TEST_DIR/valid.env"
cat >"$valid_env" <<EOF
WATERMAPS_DEPLOY_REVISION=$revision
WATERMAPS_APP_IMAGE=registry.example:5000/team/watermaps:$revision
WATERMAPS_ROUTE_DATA_IMAGE=registry.example:5000/team/watermaps-route-data:$revision
EOF
wm_validate_images_env "$valid_env"
invalid_env="$TEST_DIR/invalid.env"
cat >"$invalid_env" <<EOF
WATERMAPS_DEPLOY_REVISION=$revision
WATERMAPS_APP_IMAGE=registry.example/team/watermaps:latest
WATERMAPS_ROUTE_DATA_IMAGE=registry.example/team/watermaps-route-data:$revision
EOF
if (wm_validate_images_env "$invalid_env" >/dev/null 2>&1); then
printf 'Beweglicher latest-Tag wurde als Release akzeptiert.\n' >&2
exit 1
fi
fake_bin="$TEST_DIR/bin"
mkdir -p "$fake_bin"
cat >"$fake_bin/docker" <<'SH'
#!/usr/bin/env bash
set -Eeuo pipefail
if [[ "${1:-}" == "image" && "${2:-}" == "inspect" ]]; then
printf '%s\n' \
'mirror.example/team/watermaps@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \
'registry.example:5000/team/watermaps@sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
exit 0
fi
exit 1
SH
chmod +x "$fake_bin/docker"
PATH="$fake_bin:$PATH"
resolved="$(
wm_resolve_image_digest \
"registry.example:5000/team/watermaps:$revision"
)"
[[ "$resolved" == \
"registry.example:5000/team/watermaps@sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" ]]
printf 'Commit-Tag- und Digest-Prüfungen: OK\n'