buildbot/nix-eval evaluation succeeded in 3m 21s
buildbot/nix-build gitea:clan/dvt-lite#checks.x86_64-linux.integration-test-geth-prysm failed
buildbot/nix-build gitea:clan/dvt-lite#checks.x86_64-linux.integration-test-reth-teku failed
buildbot/nix-build 2 of 29 attributes failed
Set the standard ethpandaops port and option defaults across all EL and CL adapters. Checkpoint sync defaults to beaconstate.ethstaker.cc on known networks for Teku, Prysm, Nimbus, Lodestar, Grandine, and Lighthouse. Teku gets --data-storage-mode=prune. Besu gets --nat-method=NONE. Reth, lodestar, and grandine get explicit metrics ports to match ethpandaops (lodestar/grandine upstream modules differ). Systemd stop timeouts are 300 s on all EL and CL units. Add two nix-unit test files: - defaults.unit.nix: reads the upstream ethpandaops ethereum_node role YAML from the flake input and asserts our ECL role defaults match (P2P ports, QUIC, REST, engine API, fee recipient). - Per-client tests in adapters.unit.nix: same approach for per-client roles, covering metrics ports, NAT method, storage mode, and Prysm's unified P2P port mapping. The ethpandaops repo is added as a flake = false input so the YAML is read with builtins.readFile at eval time — no IFD, no sandbox issues.
129 lines
3.6 KiB
Nix
129 lines
3.6 KiB
Nix
{
|
|
description = "dvt-lite";
|
|
|
|
inputs = {
|
|
clan-core.url = "git+https://git.clan.lol/clan/clan-core";
|
|
flake-parts.follows = "clan-core/flake-parts";
|
|
nixpkgs.follows = "clan-core/nixpkgs";
|
|
treefmt-nix.follows = "clan-core/treefmt-nix";
|
|
|
|
dirk-fork.url = "github:brianmcgee/dirk/head-tracking";
|
|
|
|
ethpandaops-general = {
|
|
url = "github:ethpandaops/ansible-collection-general";
|
|
flake = false;
|
|
};
|
|
|
|
nix-unit = {
|
|
# nix-unit builds against a specific Nix release (nixVersions.nixComponents_*),
|
|
# which clan-core's nixpkgs pin often predates. Let it use its own locked
|
|
# nixpkgs rather than following ours.
|
|
url = "github:nix-community/nix-unit";
|
|
inputs.treefmt-nix.follows = "treefmt-nix";
|
|
};
|
|
|
|
ethereum-nix = {
|
|
# Pinned to the commit before the RFC 42 settings migration (3188b22,
|
|
# "refactor(modules): migrate NixOS modules to RFC 42 settings pattern"),
|
|
# which removed the typed `args` API our lighthouse adapter consumes.
|
|
url = "github:nix-community/ethereum.nix/12621446ed2cc4a0840bbc9de1a96baef84cce28";
|
|
inputs.nixpkgs.follows = "clan-core/nixpkgs";
|
|
inputs.treefmt-nix.follows = "clan-core/treefmt-nix";
|
|
};
|
|
|
|
uv2nix = {
|
|
url = "github:pyproject-nix/uv2nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.pyproject-nix.follows = "pyproject-nix";
|
|
};
|
|
|
|
pyproject-nix = {
|
|
url = "github:pyproject-nix/pyproject.nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
pyproject-build-systems = {
|
|
url = "github:pyproject-nix/build-system-pkgs";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.pyproject-nix.follows = "pyproject-nix";
|
|
inputs.uv2nix.follows = "uv2nix";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
inputs@{
|
|
clan-core,
|
|
flake-parts,
|
|
...
|
|
}:
|
|
flake-parts.lib.mkFlake
|
|
{
|
|
inherit inputs;
|
|
}
|
|
{
|
|
systems = [
|
|
"x86_64-linux"
|
|
];
|
|
|
|
imports = [
|
|
|
|
# Import clan's flake-parts modules
|
|
clan-core.flakeModules.clan
|
|
clan-core.flakeModules.testModule
|
|
|
|
# exposes the nix-unit suites as `checks.<system>.nix-unit`
|
|
inputs.nix-unit.modules.flake.default
|
|
|
|
inputs.treefmt-nix.flakeModule
|
|
./clanServices/flake-module.nix
|
|
./nixosModules/flake-module.nix
|
|
./packages/flake-module.nix
|
|
];
|
|
|
|
perSystem = _: {
|
|
nix-unit = {
|
|
inputs = {
|
|
inherit (inputs)
|
|
nixpkgs
|
|
flake-parts
|
|
nix-unit
|
|
clan-core
|
|
ethereum-nix
|
|
ethpandaops-general
|
|
;
|
|
};
|
|
allowNetwork = true;
|
|
};
|
|
|
|
treefmt = {
|
|
# In a linked worktree `.git` is a file, so a `.git/config`
|
|
# find-up walks past the worktree root and lands on the parent
|
|
# checkout. Ask git for the tree root instead.
|
|
projectRootFile = null;
|
|
settings.tree-root-cmd = "git rev-parse --show-toplevel";
|
|
|
|
programs = {
|
|
nixfmt.enable = true;
|
|
deadnix.enable = true;
|
|
statix.enable = true;
|
|
prettier.enable = true;
|
|
};
|
|
|
|
settings.formatter = {
|
|
deadnix.priority = 1;
|
|
statix.priority = 2;
|
|
nixfmt.priority = 3;
|
|
|
|
prettier = {
|
|
options = [
|
|
"--tab-width"
|
|
"4"
|
|
];
|
|
includes = [ "*.{md}" ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|