Skip to content

Add Nix configuration and support for dual CI runners (Ubuntu + Nix)#304

Draft
willyzha wants to merge 1 commit into
lowRISC:mainfrom
willyzha:nix-config
Draft

Add Nix configuration and support for dual CI runners (Ubuntu + Nix)#304
willyzha wants to merge 1 commit into
lowRISC:mainfrom
willyzha:nix-config

Conversation

@willyzha
Copy link
Copy Markdown
Collaborator

No description provided.

@willyzha willyzha force-pushed the nix-config branch 30 times, most recently from f4b1533 to ca3407e Compare April 28, 2026 20:52
This commit introduces a parallel CI pipeline using a Nix-based
reproducible development environment. It achieves dev-prod parity
by ensuring local developers and the CI runner use the exact same
toolchains and dependencies.

Key changes:
- `flake.nix`: Defines a reproducible `devShell` containing essential
  build tools (Bazel, Go, Python, OpenSSL) and natively configures the
  `libp11` PKCS11 engine for SoftHSM integration.
- `.github/workflows/main.yml`: Adds a parallel job matrix to run
  integration tests on the new `ot-provisioning-nix-runner`. It injects
  environment variables via `env` to bypass Nix's environment stripping,
  and skips physical FPGA hardware tests (`FPGA=skip`).
- `setup.sh`: Improves host backwards-compatibility by dynamically
  falling back to `libncursesw6` and `libtinfo6` on newer Ubuntu
  distributions (like 24.04).
- `nix/ci-machine.nix` & `nix/README.md`: Adds the declarative NixOS
  infrastructure configuration for the future provisioning of the CI
  runner itself.
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.

1 participant