mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
It includes the work over the state store, the PRC server, the HTTP server, the go API package and the CLI's command. To read more on the actuall functionality, refer to the RFCs [NMD-178] Locking with Nomad Variables and [NMD-179] Leader election using locking mechanism for the Autoscaler.
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