Makefile at the repository root is the developer-facing command surface.
It is a convenience layer over npm, go and docker compose, with one job
that is not convenience: it exports GOEXPERIMENT=jsonv2 for every Go target,
which the build requires and which is easy to forget.
make help prints the current list. This page groups the targets that matter
and says what each is actually for.
Setup and dependencies
Development
Build and test
make test does not include make e2e: the end-to-end scan reaches the
network and takes minutes, so it is opt-in rather than part of the default
suite. Run it before cutting a release.
make backend-build builds the API only. The worker and the migration runner
are separate go build invocations — see
worker and
migrate.
Docker
This is the shortest path to a running TRUSTIVAN; see Docker
Compose.
make images-verify runs against the images make images produces, so the two
go together — the check inspects a built image and has nothing to inspect
otherwise.
Database
Guards
These are the checks CI runs. They are worth knowing about because they encode architectural rules that are easy to break by accident, and because a contribution that trips one gets a failing build rather than a review comment.ci-scanner-boundary and ci-branding are the two that surprise people. The
first keeps the scanning engine replaceable by making the adapter the only
package allowed to import it. The second is a licence obligation in script form:
it fails if upstream’s identity is stripped out of the vendored source, because
removing it would breach the attribution the licence requires. Both are
explained in Upstream and attribution.
Deployment
There is deliberately nomake deploy.
Deployment needs credentials for a specific environment, and a Makefile target
holding them is a target that runs from a laptop with production access. So the
procedure is documented rather than scripted, to be executed by a pipeline that
owns its own secrets.
make deploy-docs prints the map; see
Topology for what running TRUSTIVAN actually
involves.
