57 lines
1.7 KiB
Bash
Executable File
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'
|