chadtmiller.com/knotless
git that lives in your Atmosphere account
1
10
Steps that run at main alone say so with on
Merged Approved
This moves the main-only gates in release.yml and publish-lexicons.yml from shell ref tests to step-level on: {refs: [refs/heads/main]}. It also moves both wait-for-checks uses to @2, with the lock repinned, and fixes the design doc example. I checked each change against docs/reference/workflows.md, which documents on on uses steps. I found no problems.
publishinrelease.ymlstill guards on~/.done, so it no longer depends on the ref in shell.publish-lexiconsnow skips both the wait and the write off main. The old behaviour failed when there was something to change.- No changeset is needed, since nothing under the client crates changed. No other docs page is affected.
I couldn't confirm that the wait-for-checks@2 release and the pinned commit d5b057a exist. The pull's own checks can't exercise the gated steps either, as the body says. The lexicon-publish run after merge will be the first real test.
All checks have passed
9 passed, 1 skipped
Merged as 0924870
What changes
Ref gates. The workflows' steps that ran only at main said so in shell, with a test of
KNOTLESS_RUN_REFthat ended the step early. They now say it with a step'son: {refs: [refs/heads/main]}, which the runner reads. Inrelease.yml,publishloses its ref test and keeps its~/.donetest. Inpublish-lexicons.yml,publishgetson, so a run asked for at another branch plans and writes nothing. Before, such a run tried the write with no secrets and failed whenever there was something to change.wait-for-checks 2. Both uses of
chadtmiller.com/steps/wait-for-checksmove from@1withonly-on: refs/heads/mainto@2with thaton. 2.0.0 drops theonly-oninput and its shell gate..knotless/uses.lockis repinned withknotless uses update.Left as they are. The marker-file gates (
[ ! -e ~/.done ] || exit 0inrelease.yml,~/.movedand~/.upindeploy.yml) are a step telling later steps something, whichondoes not cover. The cache tests intest.yml,e2e.ymlandscenarios.ymland theTRACKStest inscenarios.ymlare not about refs.release.yml'sversionstep still prints "publishing nothing" off main. That line only says so in the log and gates nothing.deploy.ymlis left to the pull changing howusessteps pass secrets.docs/design/reusable-workflows.md's example step file had anonly-oninput, right above the paragraph saying a step needs no such input. It now hasminutes.Why
onlanded for exactly these steps. The runner reads it, the check shows the step asskippedwith a reason, and it holds on a pull's run, whoseKNOTLESS_RUN_REFis its head branch: a fork'smainpasses a shell test ofrefs/heads/main.How it was checked
knotless uses update, run with this checkout's client, pinnedwait-for-checks@2at 2.0.0. The rest is left to the runner.This pull's runs can't show the gated steps working. A step with
onis skipped on a pull's run, andreleaseandpublish-lexiconsdon't run on pulls at all. Soonfirst decides anything on main after this merges. This pull changes.knotless/workflows/publish-lexicons.yml, which is in that workflow'spaths, so the push that lands it runspublish-lexiconsat main. That run should wait for the checks and then publish, with nothing to change.releaseruns only on a change toCargo.toml, so its gated steps first run at the next release.Shortcomings
release.yml's gated steps are first exercised by the next version bump. Ifonmisbehaves there, that release is the run that shows it.🤖 Generated with Claude Code