mix gate.verify (Statifier v2.1.1)

Copy Markdown View Source

Runs mix quality and attests that what it ran was the full gate.

A green run is not by itself evidence of a green gate: --profile loop, --test-scope changed, --quick and --skip all produce one, and each of them checks less. ADR-0011 makes reporting such a run as a full gate a weakening of the gate; this task is how that claim gets checked rather than remembered.

Usage

mix gate.verify

The run passes only when the report says status: "ok", scope: "all", no profile, and no stage skipped for a reason that names this run rather than the project. Exit status is 0 when it attests and 1 when it does not.

A stage skipped for a project-level reason (:sobelow not installed, disabled in .quality.exs, a custom stage's own skip) is named in the output but does not fail the attestation: that is a gap in what the project checks at all, which a fuller run cannot close.

Summary

Functions

Runs the gate and reports the attestation instead of halting.

Functions

execute(argv, opts \\ [])

@spec execute(argv :: [String.t()], opts :: keyword()) ::
  {:ok, String.t()} | {:error, String.t()}

Runs the gate and reports the attestation instead of halting.

opts[:runner] replaces the mix quality shell-out with a function of an argument list returning {output, status}, mirroring Mix.Tasks.Test.Regression, so tests drive this without a nested gate run.