rogermsc/darwin-memo settle

Settle a darwin-memo CI lesson store from test results. Wraps the `darwin-memo settle-ci` subcommand: per-test junit XML diffing, abstention on infra failures (exit code 3 becomes result=abstained, never a step failure), flaky-test quarantine via a sidecar state file, a degraded raw pass-count fallback, and an optional commit of the updated store back to the branch.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 12, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: rogermsc/darwin-memo-action@32d57303e3f13ae1a72468bc6e331e4230644af2 # v1.0.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
store-pathPath to the ledger file. Created on first use; on abstention it is left untouched (and never created). .darwin-memo/lessons.json
junit-basejunit XML report from the test run at the base commit. Primary mode: set junit-base and junit-head, leave passes-before and passes-after empty. ""
junit-headjunit XML report from the test run at the head or merge commit.""
passes-beforeDegraded fallback for ecosystems without junit XML: raw passing count at the base commit. Both passes-before and passes-after are required in this mode; never default a missing count to zero. No per-test attribution, no quarantine, no infra detection. ""
passes-afterDegraded fallback: raw passing count at the head commit.""
scaleresource_scale for settle deltas.1.0
expire-afterTicks before unsettled tickets expire at delta zero.50
ticketA darwin-memo-ticket id (12 hex chars) to settle, typically parsed from the merge commit message or PR body by the caller. When empty, settle-ci reads `darwin-memo-ticket: <id>` lines from the PR_BODY environment variable, so you can instead set PR_BODY to the pull request body (github.event.pull_request.body in workflow expressions) on the step that uses this action. ""
detailSettlement detail recorded with each settled ticket. Defaults to the URL of the workflow run that did the settling. ""
commit-storeWhen "true", commit and push the updated store (and the flaky.json quarantine sidecar next to it, when present) with a "memory: settle and tick" message. Requires `permissions: contents: write` and a checkout of the branch to push to. Skipped automatically on abstention. true
python-versionPython version passed to actions/setup-python.3.12
package-specpip requirement used to install the CLI. settle-ci shipped in darwin-memo 0.5.0, so the default enforces that floor. For installs pinned to a commit instead of a PyPI release, pass git+https://github.com/rogermsc/darwin-memo@<sha>. darwin-memo>=0.5.0
namedescription
result"settled" when settle-ci ran and saved the store, "abstained" when the run measured nothing (exit code 3) and the store was left untouched. Any other failure fails the step.
deltaThe measured change in passing tests (a float, e.g. "-1.0"). Only set when result is "settled".
summaryThe one-line JSON object settle-ci printed: mode, delta, per-test transitions, quarantined tests, and what settled. On abstention it carries the reason instead.