tuwunel/.github/workflows
Jason Volk 8d6bfde5a0 Use insta and criterion for main integration test and benches respectively.
docker/ci: Separate integration and unit tests and benches jobs.

Add directives to remove db before/after integration tests are performed.

Split start/run/stop phases; add more granular smoketests.

Split main integration tests into units for isolation.

Signed-off-by: Jason Volk <jason@zemos.net>
2025-10-02 05:29:48 +00:00
..
bake.yml ci: Add multi-runner/multi-arch to matrices. (closes #55) 2025-06-17 03:41:27 +00:00
lint.yml ci: Disable lychee for now due to excessive build time issue during install. 2025-08-28 23:28:20 +05:00
main.yml ci: Support job masking directives in commit message. [ci only it] 2025-10-02 05:27:48 +00:00
package.yml ci: Add nix build w/ smoketest. (closes #111) 2025-09-25 14:38:23 +00:00
publish.yml ci: Fix pages deployment. (#165) 2025-09-23 05:15:10 +00:00
README.md docker: Simplify build/install; dedup cargo commands; enable gc. 2025-06-04 03:44:21 +00:00
test.yml Use insta and criterion for main integration test and benches respectively. 2025-10-02 05:29:48 +00:00

Overview

The release pipeline Main (main.yml) and its subroutines defined in the other yamls form a high-level description for the underlying self-hosted build system in /docker. In other words, this is a sort of terminal, a "thin-client" with a display and a keyboard for our docker mainframe. We minimize vendor-lockin and duplication with other services by limiting everything here to only what is essential for driving the docker builder.

Though we slightly relax the above by specifying details of the actual CI pipeline, the control-flow logic to go from some input event to some output or release here. This gives us better integration with github, like granular progress indications by breaking up operations as individual jobs and workflows within the pipeline. This means we'll have duplicate logic with other services, but only as it relates to high-level control flow.