You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: make CI standalone (drop estate reusable workflows + third-party setup action)
The PR-gating build/lint/test were blocked by startup_failure on workflows
with external dependencies. Make the gating CI self-contained:
- ci.yml: self-host the OCaml toolchain via apt + opam (replacing third-party
ocaml/setup-ocaml); use only first-party actions/* at real upstream major
tags. The previous SHA pins carried fictional version comments (checkout
"v6.0.3", upload-artifact "v7.0.1" — nonexistent upstream). dune-project
needs OCaml >= 4.14, satisfied by the runner's apt OCaml (ocaml-system)
with a base-compiler fallback.
- governance.yml: replace the hyperpolymath/standards governance-reusable with
a conservative, delta-aware local gate (tools/ci/governance-standalone.sh):
Jekyll-artifact ban, MPL-1.0 SPDX-header ban, PR-delta DOC-FORMAT check.
Verified to pass clean on the current tree.
- secret-scanner.yml: replace the hyperpolymath/standards secret-scanner-reusable
(which needed inherited secrets) with a pure-shell high-confidence scan
(tools/ci/secret-scan-standalone.sh). No secrets required.
- scorecard.yml: call ossf/scorecard-action directly (mirroring the already-
direct scorecard-enforcer.yml), dropping the estate reusable.
Root cause of the governance/secret-scanner startup_failure: a concurrency
block in a reusable-workflow caller stacks on the reusable's own concurrency
declaration and is rejected at run-creation (the BP008 class documented in
spark-theatre-gate.yml). The standalone replacements are normal workflows, so
their concurrency blocks are safe.
Left intentionally (see PR): hypatia-scan + spark-theatre-gate (estate-
proprietary scanners, currently passing — reproducing locally would lose
coverage), mirror (cross-forge by nature), and release.yml's ocaml/setup-ocaml
(cross-platform macOS matrix; a Linux-only inline setup would break it).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lz7pRcec2Z3tVtaAhvB3M8
0 commit comments