mirror of
https://github.com/KingHWJ/WeReadBoard.git
synced 2026-11-03 18:24:58 +08:00
ci(deploy): 仅允许 master 自动部署
This commit is contained in:
1 parent
77e05998a5
commit
8171705c5f
8 files changed
+74
-24
No files matched your search
Executable
+47
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
WORKFLOW="$ROOT_DIR/.github/workflows/deploy.yml"
|
||||
|
||||
if ! grep -q '^ - master$' "$WORKFLOW"; then
|
||||
echo "部署工作流尚未监听 master"
|
||||
exit 1
|
||||
fi
|
||||
if grep -q '^ - dev$' "$WORKFLOW"; then
|
||||
echo "部署工作流仍监听 dev"
|
||||
exit 1
|
||||
fi
|
||||
if ! grep -q '^ group: deploy-master$' "$WORKFLOW"; then
|
||||
echo "部署并发组尚未切换到 master"
|
||||
exit 1
|
||||
fi
|
||||
if ! grep -q '^ DEPLOY_BRANCH: master$' "$WORKFLOW"; then
|
||||
echo "手动部署分支尚未固定为 master"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEST_DIR="$(mktemp -d)"
|
||||
trap 'rm -rf "$TEST_DIR"' EXIT
|
||||
mkdir -p "$TEST_DIR/project" "$TEST_DIR/bin"
|
||||
printf '#!/usr/bin/env bash\nexit 0\n' > "$TEST_DIR/bin/python3"
|
||||
chmod +x "$TEST_DIR/bin/python3"
|
||||
|
||||
set +e
|
||||
OUTPUT="$(
|
||||
PATH="$TEST_DIR/bin" \
|
||||
PROJECT_DIR="$TEST_DIR/project" \
|
||||
VENV_DIR="$TEST_DIR/project/.venv" \
|
||||
DEPLOY_BRANCH=dev \
|
||||
SKIP_GIT_PULL=1 \
|
||||
/bin/bash "$ROOT_DIR/deploy.sh" 2>&1
|
||||
)"
|
||||
STATUS=$?
|
||||
set -e
|
||||
|
||||
if [ "$STATUS" -eq 0 ] || [[ "$OUTPUT" != *"只允许部署 master"* ]]; then
|
||||
echo "deploy.sh 没有拒绝 dev 分支"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "master-only 部署约束验证通过"
|
||||
Reference in new issue
Block a user