mirror of
https://github.com/kemko/nomad.git
synced 2026-01-02 00:15:43 +03:00
* Add OomKilled field to executor proto format * Teach linux executor to detect and report OOMs * Teach exec driver to propagate OOMKill information * Fix data race * use tail /dev/zero to create oom condition * use new test framework * minor tweaks to executor test * add cl entry * remove type conversion --------- Co-authored-by: Marvin Chin <marvinchin@users.noreply.github.com> Co-authored-by: Seth Hoenig <shoenig@duck.com>
CI (unit testing)
This README describes how the Core CI Tests Github Actions works, which provides Nomad with continuous integration unit testing.
Steps
-
When a branch is pushed, GHA triggers
.github/workflows/test-core.yaml. -
The first job is
modswhich creates a pre-cache of Go modules.
- Only useful for the followup jobs on Linux runners
- Is keyed on
hash(go.sum), so a cache is re-used until deps are modified.
- The
checks,test-api,test-*jobs are started.
- The checks job runs
make check - The test job runs groups of tests, see below
3i. The check step also runs make missing
- Invokes
tools/missingto scanci/test-cores.json&& nomad source. - Fails the build if any packages in Nomad are not covered.
4a. The test-* jobs are run.
- Configured as a matrix of "groups"; each group is a set of packages.
- The GHA invokes
test-nomadwith $GOTEST_GROUP for each group. - The makefile uses
tools/missingto translate the group into packages - Package groups are configured in
ci/test-core.json
4b. The test-api job is run.
- Because
apiis a submodule, invokation of test command is special. - The GHA invokes
test-nomad-modulewith the name of the submodule.
- The
compilejobs are run
- Waits on checks to complete first
- Runs on each of
linux,macos,windows