Reorganised deployment scripts and added rollback functionality. Updated documentation and workflow for container image builds.
This commit is contained in:
+56
@@ -0,0 +1,56 @@
|
||||
#!/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'
|
||||
Reference in New Issue
Block a user