1
0
forked from baron/baron-sso
Files
baron-sso/test/code_check_biome_dedup_test.sh

48 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
WORKFLOW_FILE="$ROOT_DIR/.gitea/workflows/code_check.yml"
fail() {
echo "ERROR: $*" >&2
exit 1
}
job_block() {
local job="$1"
awk -v job=" ${job}:" '
$0 == job { in_job = 1; print; next }
in_job && /^ [a-zA-Z0-9_-]+:/ { exit }
in_job { print }
' "$WORKFLOW_FILE"
}
lint_block="$(job_block lint)"
biome_block="$(job_block biome-check)"
if printf '%s\n' "$lint_block" | grep -Eq 'Biome check (adminfront|devfront|orgfront)|npx biome check'; then
fail "lint job must not duplicate frontend Biome checks; keep them in biome-check"
fi
for app in adminfront devfront orgfront; do
printf '%s\n' "$biome_block" | grep -Fq "Install ${app} dependencies" ||
fail "biome-check job must install ${app} dependencies"
printf '%s\n' "$biome_block" | grep -Fq "Biome check ${app}" ||
fail "biome-check job must check ${app}"
done
for job in \
adminfront-vitest-coverage \
devfront-vitest-coverage \
orgfront-vitest-coverage \
adminfront-tests \
devfront-tests \
orgfront-tests; do
block="$(job_block "$job")"
printf '%s\n' "$block" | grep -Fq " - biome-check" ||
fail "${job} must depend on biome-check instead of duplicating/depending on lint for frontend quality gate"
done
echo "OK: Code Check runs frontend Biome only in the biome-check job"