From 983498765eafff17aa9d9a33a81742b9b4848b20 Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Thu, 21 May 2026 19:37:01 +0000 Subject: [PATCH] ci: add ci job and Promotion Gate workflow to satisfy branch protection Branch protection on main requires three status checks: - CI / lint (pull_request) [was already satisfied] - CI / ci (pull_request) [new: validates JSON files] - Promotion Gate / Promotion Gate (pull_request) [new: validates skills structure] Adding the ci job and Promotion Gate workflow so all required checks can pass on PRs, unblocking future merges to main. Co-Authored-By: Paperclip --- .gitea/workflows/ci.yaml | 12 ++++++++++++ .gitea/workflows/promotion-gate.yaml | 24 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 .gitea/workflows/promotion-gate.yaml diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 1b18e28..7f08a42 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -42,3 +42,15 @@ jobs: done done exit $fail + + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Validate JSON files + run: | + find . -name "*.json" -not -path "./.git/*" | while read -r f; do + python3 -m json.tool "$f" > /dev/null || { echo "::error file=$f::Invalid JSON"; exit 1; } + done + echo "All JSON files valid" diff --git a/.gitea/workflows/promotion-gate.yaml b/.gitea/workflows/promotion-gate.yaml new file mode 100644 index 0000000..49f118b --- /dev/null +++ b/.gitea/workflows/promotion-gate.yaml @@ -0,0 +1,24 @@ +name: Promotion Gate + +on: + pull_request: + branches: [main] + +jobs: + promotion_gate: + name: Promotion Gate + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Validate skills directory structure + run: | + set -e + fail=0 + for dir in skills/*/; do + if [ ! -f "${dir}SKILL.md" ]; then + echo "::error::Missing SKILL.md in ${dir}" + fail=1 + fi + done + exit $fail