Post-release end-to-end validation for Tiny Systems modules.
This repo runs slow, real-cluster scenarios against released module versions and records the result. It does not gate releases — releases ship first, this repo retroactively stamps each version with a pass/fail.
- A module repo (e.g.
common-module) cuts a release tag. - Its CI dispatches a
module-releasedevent to this repo with{module, version}. - This repo's CI spins up a kind cluster, installs the latest CRD chart and
the module at the released version, runs
scenarios/, and writesresults/<module>/<version>.json. - The result is committed back. README's status table is regenerated.
A second workflow (retest-all) re-runs the current scenarios against every
known (module, version) pair — useful when a new scenario lands and you want
to find out which historical versions it now flags.
make cluster # create kind cluster
make install MODULE=common-module VERSION=v0.5.0
make test # run scenarios
make teardown # delete kind clusterOr all-in-one:
make e2e MODULE=common-module VERSION=v0.5.0scenarios/ # behavior tests — talk to the cluster via CRDs, SDK-agnostic
harness/ # k8s client + helpers for scenarios
scripts/ # kind + helm wrappers
results/ # per-(module,version) test results, committed to git
Scenarios use unstructured against installed CRDs rather than importing SDK
types. That keeps the test suite valid across SDK refactors — what's being
tested is the API contract (the CRD shape and the runtime's behavior), not
internal Go types.
| Module | Latest tested |
|---|---|
| populated by CI |