Semantic Release Gating

Neux 2 min read
Evidence Solid

Release gates on tests, coverage and policy are standard in delivery pipelines; a gate that consults a model of the running system is the same mechanism with a wider view.

We gate releases on what the system model says about the change, its dependencies and the state of what it touches, so that a pipeline refuses a deployment for reasons a script could never have been written to know.

Gates that see only the artefact

A conventional pipeline gates on properties of the build: the tests passed, the coverage held, the scanner found nothing. Those are properties of the artefact in isolation. They say nothing about whether the service the artefact depends on is mid-incident, whether the schema it expects has shipped, or whether the change alters a component that carries regulated data.

Gates that consult the model

We connect the pipeline to the same knowledge graph that describes your infrastructure and its dependencies. Before a release proceeds, the gate asks the model: what does this component depend on, what depends on it, what is their current state, and which policies attach to this class of component. A release into a dependency that is degraded is held. A change to a component in a regulated class requires the approval that class demands.

Orchestration that reasons

The pipeline stops being a linear script and becomes a stateful orchestrator. It knows the topology, so it can order a multi-service release by dependency rather than by convention, and it can roll back in the reverse order when a later step fails. The ordering is derived from the model each time, not maintained by hand.

What you gain

Fewer releases that were correct in isolation and wrong in context, and a record of why each release was allowed or held, stated in terms of the business components involved. Release integrity becomes a property the pipeline enforces rather than a judgement the on-call engineer makes at speed.

Keep reading

All explainers