Skip to content

Build KEVM once per architecture in release, populate both nix caches from it#2860

Merged
automergerpr-permission-manager[bot] merged 1 commit into
masterfrom
nix-optimization
Jun 10, 2026
Merged

Build KEVM once per architecture in release, populate both nix caches from it#2860
automergerpr-permission-manager[bot] merged 1 commit into
masterfrom
nix-optimization

Conversation

@ehildenb

@ehildenb ehildenb commented Jun 9, 2026

Copy link
Copy Markdown
Member

Same idea as: runtimeverification/k#4927

The release workflow had two separate jobs — nix-cache ("Populate Nix Cache") and nix-binary-cache ("Populate Nix Binary Cache") — that each independently built KEVM on a normal + ARM64 matrix. That meant KEVM was compiled four times per release (twice per architecture), doubling build pressure for no benefit: nix is content-addressed, so once .#kevm is realized in the local store, both the cachix push (public k-framework) and kup publish (private k-framework-binary) steps just push the already-built paths.

This merges the two into a single nix-cache job that builds once per architecture and populates both caches, each with its own auth token.

Changes:

  • Merge nix-binary-cache into nix-cache: the kup publish k-framework-binary step now runs as a third step after the public-cache push, sharing the single nix build.
  • Per-step CACHIX_AUTH_TOKEN preserved (public CACHIX_PUBLIC_TOKEN for the k-framework push, private CACHIX_PRIVATE_KFB_TOKEN for the k-framework-binary publish).
  • Drop nix-binary-cache from make-release's needs (now [draft-release, nix-cache]).
  • Single failure-handling pair (delete drafted release + Slack notification) now covers all push steps.

🤖 Generated with Claude Code

…caches from it

Merge the 'Populate Nix Cache' and 'Populate Nix Binary Cache' release jobs into a single 'nix-cache' job that builds KEVM once per architecture and pushes the resulting store paths to both the public k-framework cache and the private k-framework-binary cache. Previously each cache had its own job, so KEVM was built twice per architecture (four builds total), doubling release-time build pressure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ehildenb ehildenb marked this pull request as ready for review June 9, 2026 15:53
@ehildenb ehildenb requested review from anvacaru and asavienko June 9, 2026 15:53
@automergerpr-permission-manager automergerpr-permission-manager Bot merged commit 5388c8d into master Jun 10, 2026
23 of 24 checks passed
@automergerpr-permission-manager automergerpr-permission-manager Bot deleted the nix-optimization branch June 10, 2026 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants