forked from baron/baron-sso
코드체크 실패 케이스 해결. 배치잡 야간 배정
This commit is contained in:
50
test/code_check_badge_branch_policy_test.sh
Normal file
50
test/code_check_badge_branch_policy_test.sh
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
WORKFLOW_FILE="$ROOT_DIR/.gitea/workflows/code_check.yml"
|
||||
FULL_NIGHTLY_WORKFLOW_FILE="$ROOT_DIR/.gitea/workflows/userfront_e2e_full_nightly.yml"
|
||||
README_FILE="$ROOT_DIR/README.md"
|
||||
|
||||
fail() {
|
||||
echo "ERROR: $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
assert_contains() {
|
||||
local file="$1"
|
||||
local pattern="$2"
|
||||
grep -Fq -- "$pattern" "$file" || fail "missing pattern in $file: $pattern"
|
||||
}
|
||||
|
||||
assert_not_contains() {
|
||||
local file="$1"
|
||||
local pattern="$2"
|
||||
if grep -Fq -- "$pattern" "$file"; then
|
||||
fail "forbidden pattern in $file: $pattern"
|
||||
fi
|
||||
}
|
||||
|
||||
assert_contains "$WORKFLOW_FILE" "BADGE_BRANCH=badges"
|
||||
assert_contains "$WORKFLOW_FILE" 'push origin HEAD:${BADGE_BRANCH}'
|
||||
assert_contains "$WORKFLOW_FILE" 'BADGE_SOURCE_SHA: ${{ github.sha }}'
|
||||
assert_contains "$WORKFLOW_FILE" 'BADGE_LATEST_DIR="${BADGE_WORKTREE}/latest"'
|
||||
assert_contains "$WORKFLOW_FILE" 'BADGE_SHA_DIR="${BADGE_WORKTREE}/dev/${GITHUB_SHA}"'
|
||||
if grep -Eq "^[[:space:]]+git push$" "$WORKFLOW_FILE"; then
|
||||
fail "Code Check workflow must not push back to the current branch"
|
||||
fi
|
||||
assert_contains "$README_FILE" "https://gitea.hmac.kr/baron/baron-sso/raw/branch/badges/latest/code-check.svg"
|
||||
assert_contains "$README_FILE" "https://gitea.hmac.kr/baron/baron-sso/raw/branch/badges/latest/dev-sha.svg"
|
||||
assert_contains "$README_FILE" "https://gitea.hmac.kr/baron/baron-sso/raw/branch/badges/latest/userfront-e2e-full.svg"
|
||||
assert_contains "$README_FILE" "https://gitea.hmac.kr/baron/baron-sso/raw/branch/badges/latest/adminfront-coverage.svg"
|
||||
assert_not_contains "$README_FILE" "](docs/badges/"
|
||||
|
||||
assert_contains "$FULL_NIGHTLY_WORKFLOW_FILE" "cron: \"0 18 * * *\""
|
||||
assert_contains "$FULL_NIGHTLY_WORKFLOW_FILE" "make code-check-lint"
|
||||
assert_contains "$FULL_NIGHTLY_WORKFLOW_FILE" "refs/remotes/origin/badges:dev/\${target_sha}/badges.json"
|
||||
assert_contains "$FULL_NIGHTLY_WORKFLOW_FILE" "full-result-exists:\${full_message}"
|
||||
assert_contains "$FULL_NIGHTLY_WORKFLOW_FILE" "USERFRONT_E2E_FULL: \"true\""
|
||||
assert_contains "$FULL_NIGHTLY_WORKFLOW_FILE" "BADGE_UPDATE_CODE_CHECK: \"false\""
|
||||
assert_contains "$FULL_NIGHTLY_WORKFLOW_FILE" "npm test"
|
||||
|
||||
echo "OK: Code Check badges are published to the badges branch"
|
||||
Reference in New Issue
Block a user