An open API service indexing awesome lists of open source software.

https://github.com/tiny-systems/e2e


https://github.com/tiny-systems/e2e

Last synced: 12 days ago
JSON representation

Awesome Lists containing this project

README

          

# tinysystems/e2e

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.

## How it runs

1. A module repo (e.g. `common-module`) cuts a release tag.
2. Its CI dispatches a `module-released` event to this repo with `{module, version}`.
3. This repo's CI spins up a kind cluster, installs the latest CRD chart and
the module at the released version, runs `scenarios/`, and writes
`results//.json`.
4. 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.

## Running locally

```sh
make cluster # create kind cluster
make install MODULE=common-module VERSION=v0.5.0
make test # run scenarios
make teardown # delete kind cluster
```

Or all-in-one:

```sh
make e2e MODULE=common-module VERSION=v0.5.0
```

## Layout

```
scenarios/ # 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
```

## Why SDK-agnostic

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.

## Status

| Module | Latest tested |
|---|---|
| _populated by CI_ | |