Skip to content

Every workflow red on master, diagnosed: 5 fixable, 4 leave, 1 wrong trigger, 0 to delete #3316

Description

@gHashTag

Nine workflows on the default branch have never once been green, some since
April. The question nobody had asked: how many of them should exist at all?

Fanned tri red why (#3271) across all ten red workflows, one agent each, with
an adversarial stage set to attack any DELETE or DISABLE.

recommendation count
FIX 5
LEAVE 4
RESTRICT_TRIGGER 1
DELETE / DISABLE 0
class count
GENUINELY_BROKEN 7
MISSING_SECRET_OR_RUNNER 2
WRONG_TRIGGER 1

Nothing should be removed. The refutation stage had nothing to check,
because no agent proposed removing a check — every one of these either guards
something real or is red for a reason outside the repository.

The five fixable

build-paper.yml — one character. main.tex:278 declares
\begin{tabular}{lll} for a table whose header and four body rows all carry
four columns. Fixed in #3315.

coq-proofs.yml — the container's opam root. options: --user root gives
HOME=/root, which has no opam root; the image's belongs to the coq user. Set
OPAMROOT: /home/coq/.opam at job level and eval $(opam env) in both run
steps — coqc is not on root's PATH under Actions' non-login shell. Keep
--user root: removing it reintroduces the older checkout-ownership failure.

lean-proofs.yml — two Lean targets. H4Lagrangian.lean has two hard
errors whose file comment blames a missing import that is already there; the
four names it tried are pre-rename spellings, and the bounds exist at the pinned
mathlib rev as Real.pi_gt_d2 / pi_lt_d2 / exp_one_gt_d9 / exp_one_lt_d9.
TernaryInference.lean has 0 errors and 20 warnings, promoted to failure by
--wfail. Keep --wfail; dropping it hides the rot.

brain-seal-refresh.yml — a push that has never succeeded. Its first four
steps pass; only the final Commit brain seals fails, on a PR-only branch where
the push cannot work. Dropping that step and the orphaned contents: write
makes it green as what it can actually be: a check that the aggregation runs and
validates against the schema, with the seals as an artifact. Nothing is lost —
the push has never once succeeded, so it has never refreshed anything.

auto-merge-ready-prs.yml — already fixed in #3314 (zero checks read as
zero failures; a batch that merged nothing reported green).

The one wrong trigger

release.yml carries a bare workflow_dispatch: alongside
release: [published]. The preflight step reads the tag from
github.event.release.tag_name, which a dispatch does not supply, so every
manual fire fails at step 3 — the only reason it is red on master. Deleting the
four-line workflow_dispatch: block loses nothing.

Making the manual trigger actually work is three coupled edits, not one: a
required tag input, a fallback in both TAG: and the concurrency group (which
today collapses to the literal release- for every dispatch), and
github.event_name == 'release' && prepended to the if: of all five publish
jobs — otherwise a dispatch whose tag passes preflight runs cargo publish and
npm publish against the live registries for real. The file header records two
such irreversible burns already. Not recommended.

The four to leave

vivado-synth.yml and build-vivado-image.yml need a Vivado image/licence the
CI does not have — docker pull returns manifest unknown. deploy-api.yml
and issue-gate.yml's master runs are similar: nothing in the repository is
wrong.


Each fix is small and independent. Filed as one issue because the population
is the finding: a set of never-green workflows that turns out to contain no dead
weight at all.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions