Repository navigation
💥 Breaking Change
Replace the ci action engine with the monochange ci CLI
Owner: @ifiokjr · Review: PR #122
The ci action is now a thin wrapper. Job rules live in the consumer's monochange.toml under [ci.jobs.*], and the CLI owns git diffing, provider calls, memory, learned rules, and verification.
This breaks the published ci contract:
modeacceptsdecide(default),verify, orcheck. The oldanalyticsandauthmodes are nowmonochange ci analyticsandmonochange ci authin the CLI.decideevaluates every configured job in one call and replaces the per-invocationjob,paths,packages,unconditional*,max-skips-on-main,max-duration-minutes,duration-minutes,memory-path,suggestion, andverdict-classinputs with[ci]configuration.decideoutputsdecisions(JSON object of job id to boolean),affected-packages(JSON array), andrun-allinstead ofdecision,should-run,unconditional,reason, and the analytics counters.verifytakesneeds(${{ toJSON(needs) }}) and the gate'sdecisionsoutput, then records each job outcome through the CLI.checktakesworkflowpaths and validates the[ci]wiring.- Workflows gate jobs with
if: needs.gate.outputs.run-all == 'true' || fromJSON(needs.gate.outputs.decisions)['<job-id>'].
The action now pins monochange CLI 0.21.1, the first release that ships monochange ci. Re-pin the action SHA after this release to adopt it.