Files
MindSift/.gitea/scripts/test-build-plan.sh
T

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}"