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'
|
||||
@@ -10,6 +10,7 @@ FAKE_BIN="$TEST_DIR/bin"
|
||||
DATA_DIR="$TEST_DIR/data"
|
||||
RUNTIME_DIR="$TEST_DIR/runtime"
|
||||
ENV_FILE="$TEST_DIR/production.env"
|
||||
IMAGES_ENV_FILE="$TEST_DIR/images.env"
|
||||
mkdir -p "$FAKE_BIN" "$DATA_DIR/local" "$RUNTIME_DIR"
|
||||
|
||||
cat >"$ENV_FILE" <<EOF
|
||||
@@ -17,6 +18,12 @@ WATERMAPS_DATA_DIR=$DATA_DIR
|
||||
WATERMAPS_RUNTIME_DIR=$RUNTIME_DIR
|
||||
EOF
|
||||
|
||||
cat >"$IMAGES_ENV_FILE" <<'EOF'
|
||||
WATERMAPS_DEPLOY_REVISION=0123456789abcdef0123456789abcdef01234567
|
||||
WATERMAPS_APP_IMAGE=registry.example/watermaps:0123456789abcdef0123456789abcdef01234567
|
||||
WATERMAPS_ROUTE_DATA_IMAGE=registry.example/watermaps-route-data:0123456789abcdef0123456789abcdef01234567
|
||||
EOF
|
||||
|
||||
cat >"$FAKE_BIN/id" <<'SH'
|
||||
#!/usr/bin/env bash
|
||||
if [[ "${1:-}" == "-u" ]]; then
|
||||
@@ -95,6 +102,7 @@ chmod +x "$FAKE_BIN/id" "$FAKE_BIN/mountpoint" "$FAKE_BIN/docker"
|
||||
|
||||
export PATH="$FAKE_BIN:$PATH"
|
||||
export WATERMAPS_ENV_FILE="$ENV_FILE"
|
||||
export WATERMAPS_IMAGES_ENV_FILE="$IMAGES_ENV_FILE"
|
||||
export WM_TEST_ROOT="$ROOT_DIR"
|
||||
|
||||
# A first successful activation creates an active index and a validated marker.
|
||||
|
||||
Reference in New Issue
Block a user