#!/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"