77 lines
2.9 KiB
Bash
Executable File
77 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PLAN_SCRIPT="${SCRIPT_DIR}/build-plan.sh"
|
|
IMAGE="git.dsit.me/sandrodach/mindsift"
|
|
|
|
COMMIT_SHA="$(git rev-parse --short=8 HEAD)"
|
|
COMMIT_TREE="$(git rev-parse --short=12 HEAD^{tree})"
|
|
|
|
# Helper mock check script
|
|
MOCK_BIN="${SCRIPT_DIR}/.mock_check.sh"
|
|
cat << 'EOF' > "${MOCK_BIN}"
|
|
#!/usr/bin/env bash
|
|
TARGET="$1"
|
|
if [ "${MOCK_MODE}" = "tree_only" ] && [[ "${TARGET}" == *":tree-"* ]]; then
|
|
exit 0
|
|
fi
|
|
if [ "${MOCK_MODE}" = "sha_only" ] && [[ "${TARGET}" == *":sha-"* ]]; then
|
|
exit 0
|
|
fi
|
|
if [ "${MOCK_MODE}" = "all" ]; then
|
|
exit 0
|
|
fi
|
|
exit 1
|
|
EOF
|
|
chmod +x "${MOCK_BIN}"
|
|
trap 'rm -f "${MOCK_BIN}"' EXIT
|
|
|
|
echo "============================================================"
|
|
echo "TEST 1: Push to dev"
|
|
echo "============================================================"
|
|
export MOCK_MODE="none"
|
|
REF="refs/heads/dev" COMMIT="HEAD" IMAGE="${IMAGE}" CHECK_IMAGE_CMD="${MOCK_BIN}" "${PLAN_SCRIPT}"
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "TEST 2: Push/Merge to main (Tree ALREADY tested on dev)"
|
|
echo "============================================================"
|
|
export MOCK_MODE="tree_only"
|
|
REF="refs/heads/main" COMMIT="HEAD" IMAGE="${IMAGE}" CHECK_IMAGE_CMD="${MOCK_BIN}" "${PLAN_SCRIPT}"
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "TEST 3: Push to main (Tree NOT yet tested)"
|
|
echo "============================================================"
|
|
export MOCK_MODE="none"
|
|
REF="refs/heads/main" COMMIT="HEAD" IMAGE="${IMAGE}" CHECK_IMAGE_CMD="${MOCK_BIN}" "${PLAN_SCRIPT}"
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "TEST 4: Release Tag v0.10.0 (Main sha image ALREADY exists)"
|
|
echo "============================================================"
|
|
export MOCK_MODE="sha_only"
|
|
REF="refs/tags/v0.10.0" COMMIT="HEAD" IMAGE="${IMAGE}" CHECK_IMAGE_CMD="${MOCK_BIN}" "${PLAN_SCRIPT}"
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "TEST 5: Release Tag v0.10.0 (Sha NOT found, but Tree exists)"
|
|
echo "============================================================"
|
|
export MOCK_MODE="tree_only"
|
|
REF="refs/tags/v0.10.0" COMMIT="HEAD" IMAGE="${IMAGE}" CHECK_IMAGE_CMD="${MOCK_BIN}" "${PLAN_SCRIPT}"
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "TEST 6: Release Tag v0.10.0 (Sha NOT found, Tree NOT found)"
|
|
echo "============================================================"
|
|
export MOCK_MODE="none"
|
|
REF="refs/tags/v0.10.0" COMMIT="HEAD" IMAGE="${IMAGE}" CHECK_IMAGE_CMD="${MOCK_BIN}" "${PLAN_SCRIPT}"
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "TEST 7: Pre-release Tag v0.10.0-rc.1 (Sha image exists)"
|
|
echo "============================================================"
|
|
export MOCK_MODE="sha_only"
|
|
REF="refs/tags/v0.10.0-rc.1" COMMIT="HEAD" IMAGE="${IMAGE}" CHECK_IMAGE_CMD="${MOCK_BIN}" "${PLAN_SCRIPT}"
|