Skip to content

Run Lean package checks in isolated concurrent CI jobs - #8653

Merged
Heidi Howard (heidihoward) merged 18 commits into
mainfrom
achamayou-musical-journey
Nov 4, 2026
Merged

Heidi Howard (heidihoward) merged 18 commits into
mainfrom
achamayou-musical-journey

Conversation

@achamayou

@achamayou Amaury Chamayou (achamayou) commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Motivation

Run Lean package checks concurrently in isolated workspaces instead of serially.

Implementation summary

A reusable workflow checks all five packages in a fail-fast-disabled matrix, with isolated dependency caches. Raft and KV captures and replay run independently; a final gate requires every check to pass. Existing proof, axiom, formatting, lint, and fixture checks remain. KV proof references and formatter coverage were updated.

Observed CI timings: 65m40s serial to 9m04s with the matrix, an 86% decrease in elapsed time.

Safety and compatibility

No production runtime, protocol, API, or toolchain changes. Kernel and axiom checks remain enabled.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 2, 2026 23:21
@achamayou
Amaury Chamayou (achamayou) requested a review from a team as a code owner November 2, 2026 23:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Hosted validation is still needed to verify reusable-workflow failure/cancellation aggregation and executable compatibility across producer/replay runners, which local checks and source inspection cannot establish.

No open issues 🎉

What changed in this PR

This PR moves CCF’s Lean checks from serial execution to isolated concurrent jobs, preserving existing validation while allowing native Raft replay to proceed independently of unrelated packages. Performance gains remain unmeasured.

Changes:

  • Introduces a reusable package workflow with isolated checkouts and package-specific validation.
  • Separates Raft replay using a permission-preserving executable artifact with integrity and runtime checks.
  • Retains the Lean models and proofs gate, requiring successful prerequisites and checking package inventory.

Custom instructions used

Applied the supplied CCF repository guidance; no additional instruction files were loaded.

File Description
lean/​disaster-recovery/​README.md Documents package isolation, aggregate gating, and concurrency tradeoffs.
lean/​ccf-raft/​replay/​README.md Documents independent captures, executable transfer, and replay validation.
.github/​workflows/​lean.yml Orchestrates concurrent package checks, downstream replay, and the final gate.
.github/​workflows/​lean-package.yml Adds reusable package validation and Raft executable packaging.

Review effort: Balanced

The disaster-recovery formatter also parses shared CCF sources that its model build may not import. Build the common root explicitly so those imports are present in an isolated package job.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…6dffd0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
KV lint explicitly checks CCF with --no-build. Build the shared library in each dependent package checkout so lint no longer relies on a previous package job having built it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Keep third-party dependency outputs per package, keyed by platform, toolchain, manifests, configuration and workflow. Preserve clean CCF builds and every verification step.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Keep Ubuntu 26.04 in root containers with explicit build prerequisites, isolate VMSS dependency caches, and retain the lightweight hosted summary gate.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
Trust only the mounted checkout, use job-temporary elan storage and install the pinned toolchain through idempotent elan run.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
The runner context is unavailable in job-level env expressions. Export ELAN_HOME through GITHUB_ENV after the container starts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c32bb8ef227741b1a53c34b0d96e00dd
@heidihoward
Heidi Howard (heidihoward) merged commit 414300e into main Nov 4, 2026
22 checks passed
@heidihoward
Heidi Howard (heidihoward) deleted the achamayou-musical-journey branch November 4, 2026 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants