Skip to content

feat: add nix-eval workflow for cross-platform flake evaluation#12175

Open
jerome-benoit wants to merge 6 commits intoanomalyco:devfrom
jerome-benoit:feat/nix-eval-workflow
Open

feat: add nix-eval workflow for cross-platform flake evaluation#12175
jerome-benoit wants to merge 6 commits intoanomalyco:devfrom
jerome-benoit:feat/nix-eval-workflow

Conversation

@jerome-benoit
Copy link
Contributor

@jerome-benoit jerome-benoit commented Feb 4, 2026

Replace nix-desktop.yml build workflow with lightweight cross-platform evaluation.

  • Evaluate all packages (opencode, desktop) and devShells for all 4 systems
  • Single Linux runner (~2-5 min) instead of 4 native runners (~60 min)
  • Catches evaluation-time errors (missing outputHashes, syntax errors, missing deps)

Fixes #11755

Copilot AI review requested due to automatic review settings February 4, 2026 18:40
@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

The following comment was made by an LLM, it may be inaccurate:

No duplicate PRs found

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR replaces the old (disabled) Nix desktop build workflow with a lightweight, cross-platform flake evaluation workflow to catch evaluation-time issues (like missing outputHashes) earlier and more cheaply.

Changes:

  • Add .github/workflows/nix-eval.yml to evaluate opencode and desktop packages and devShells across all four supported systems from a single Linux runner.
  • Remove the obsolete .github/workflows/nix-desktop.yml.disabled workflow that previously built the desktop package on multiple native runners.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/nix-eval.yml New workflow that evaluates flake packages and devShells for all supported systems to detect evaluation-time Nix errors.
.github/workflows/nix-desktop.yml.disabled Removes the old, disabled Nix desktop build workflow in favor of the new evaluation-based approach.
Comments suppressed due to low confidence (1)

.github/workflows/nix-eval.yml:77

  • Similar to the packages loop above, the same nix eval is executed twice here on failure (once in the if condition with output suppressed and again in the else branch). To avoid redundant and potentially expensive Nix evaluations, consider restructuring this logic so that each devShell is only evaluated once while still emitting the error details when it fails.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ndrwstn
Copy link

ndrwstn commented Feb 4, 2026

@jerome-benoit @rekram1-node

So this shouldn't be merged, IMO. Nix does not guarantee correct hashes for other platforms (e.g. nix-darwin) on a linux-runner. This is a repeating issue as we go through a cycle of someone thinking we should just use a linux runner to calculate all the hashes--which may work for a release or two, but then breaks for a major upgrade and we have to reimplement the multiple build platform.

I didn't mean to be rude, if it's interpreted that way, just a little frustrated by this cycle.

@jerome-benoit
Copy link
Contributor Author

jerome-benoit commented Feb 5, 2026

I didn't mean to be rude, if it's interpreted that way, just a little frustrated by this cycle.

You haven't actually read and understood the purpose of that PR:

  • no relation at all with the hashes generation, at all, by any means
  • standard lightweigth ci for nix packaging to ensure a flake is actually syntactically correct and the build requirements are met.

A check of the flake.lock freshness, etc. is still missing.

@ndrwstn
Copy link

ndrwstn commented Feb 5, 2026

You're right that I misunderstood what you were doing.

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.

Nix flake: desktop package fails to build - missing outputHashes for specta git dependency

2 participants