Skip to content

ci: self-discovering per-tool test matrix + run-tests.sh harness#2

Open
deemwario wants to merge 1 commit into
mainfrom
harden/ci-matrix-cycle4
Open

ci: self-discovering per-tool test matrix + run-tests.sh harness#2
deemwario wants to merge 1 commit into
mainfrom
harden/ci-matrix-cycle4

Conversation

@deemwario

Copy link
Copy Markdown

Stand up CI: self-discovering per-tool test matrix + run-tests.sh

#ossengine cycle 4CI, no owner gate (additive only, no tool logic changed). Follows cycle 3 (PR #1, the 4 lint tests).

Why

The public repo had no CI at all (no .github/workflows, no scripts/). Every tool ships a test_<tool>.sh, but nothing ran them on push/PR. This wires that up.

What's in here (2 files, additive)

  • scripts/run-tests.sh — standardized harness: discover every top-level dir that ships a test_*.sh/test-*.sh, run it, aggregate. Pass/fail is each suite's exit code (no output parsing). scripts/run-tests.sh <tool> runs one.
  • .github/workflows/ci.yml — a self-discovering per-tool matrix: a discover job lists the testable tools, a test job runs one green check per tool (python3 + a git identity for the suites that build throwaway repos), and a single ci-ok status gates on the whole matrix. Add a tool + its test_<tool>.sh and CI picks it up — no workflow edit.

Verification

scripts/run-tests.sh run locally over the whole repo: 29 tools, 29 green, 0 failed. So this lands green. permissions: contents: read only.

Interaction with PR #1

PR #1 adds test_<tool>.sh for the 4 channel-lint tools. Because the matrix is self-discovering, those 4 get their own green checks automatically once both PRs are on main — no further wiring. The two PRs are independent and can merge in either order.

🤖 Generated with Claude Code

The public repo had no CI. This adds a standardized harness and a GitHub
Actions workflow so every tool's test suite runs on push + PR.

- scripts/run-tests.sh: discover/run/aggregate; pass-fail is each suite's
  exit code (no output parsing). Tolerant of the test_/test- naming split.
- .github/workflows/ci.yml: a self-discovering per-tool matrix (one green
  check per tool) gated by a single ci-ok status; sets up python3 + a git
  identity for the few suites that build throwaway repos. Add a tool +
  test_<tool>.sh and CI picks it up — no workflow edit.

Verified: scripts/run-tests.sh runs clean locally — 29 tools, 29 green, 0
failed. (The 4 channel-lint tests in PR #1 get auto-covered on merge.)
No tool logic changed; purely additive.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant