add buildbot extension for autoscaling nix builders
This commit is contained in:
parent
ea12318b88
commit
d1976a5fd8
13 changed files with 2300 additions and 8 deletions
114
flake.nix
114
flake.nix
|
|
@ -38,8 +38,16 @@
|
|||
systems = [ "x86_64-linux" ];
|
||||
forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn nixpkgs.legacyPackages.${system});
|
||||
|
||||
workspace = uv2nix.lib.workspace.loadWorkspace { workspaceRoot = ./agent; };
|
||||
overlay = workspace.mkPyprojectOverlay { sourcePreference = "wheel"; };
|
||||
agentWorkspace = uv2nix.lib.workspace.loadWorkspace { workspaceRoot = ./agent; };
|
||||
agentOverlay = agentWorkspace.mkPyprojectOverlay { sourcePreference = "wheel"; };
|
||||
|
||||
buildbotExtWorkspace = uv2nix.lib.workspace.loadWorkspace { workspaceRoot = ./buildbot-ext; };
|
||||
buildbotExtOverlay = buildbotExtWorkspace.mkPyprojectOverlay { sourcePreference = "wheel"; };
|
||||
pyprojectOverrides = final: prev: {
|
||||
py-ubjson = prev.py-ubjson.overrideAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ final.setuptools ];
|
||||
});
|
||||
};
|
||||
in
|
||||
{
|
||||
formatter = forAllSystems (
|
||||
|
|
@ -49,20 +57,34 @@
|
|||
packages = forAllSystems (
|
||||
pkgs:
|
||||
let
|
||||
pythonSet =
|
||||
agentPythonSet =
|
||||
(pkgs.callPackage pyproject-nix.build.packages {
|
||||
python = pkgs.python312;
|
||||
}).overrideScope
|
||||
(
|
||||
pkgs.lib.composeManyExtensions [
|
||||
pyproject-build-systems.overlays.default
|
||||
overlay
|
||||
agentOverlay
|
||||
pyprojectOverrides
|
||||
]
|
||||
);
|
||||
venv = pythonSet.mkVirtualEnv "nix-builder-autoscaler-env" workspace.deps.default;
|
||||
buildbotExtPythonSet =
|
||||
(pkgs.callPackage pyproject-nix.build.packages {
|
||||
python = pkgs.python312;
|
||||
}).overrideScope
|
||||
(
|
||||
pkgs.lib.composeManyExtensions [
|
||||
pyproject-build-systems.overlays.default
|
||||
buildbotExtOverlay
|
||||
pyprojectOverrides
|
||||
]
|
||||
);
|
||||
venv = agentPythonSet.mkVirtualEnv "nix-builder-autoscaler-env" agentWorkspace.deps.default;
|
||||
buildbotExtVenv = buildbotExtPythonSet.mkVirtualEnv "buildbot-autoscale-ext-env" buildbotExtWorkspace.deps.default;
|
||||
in
|
||||
{
|
||||
nix-builder-autoscaler = venv;
|
||||
buildbot-autoscale-ext = buildbotExtVenv;
|
||||
default = venv;
|
||||
}
|
||||
);
|
||||
|
|
@ -94,20 +116,36 @@
|
|||
checks = forAllSystems (
|
||||
pkgs:
|
||||
let
|
||||
pythonSet =
|
||||
agentPythonSet =
|
||||
(pkgs.callPackage pyproject-nix.build.packages {
|
||||
python = pkgs.python312;
|
||||
}).overrideScope
|
||||
(
|
||||
pkgs.lib.composeManyExtensions [
|
||||
pyproject-build-systems.overlays.default
|
||||
overlay
|
||||
agentOverlay
|
||||
pyprojectOverrides
|
||||
]
|
||||
);
|
||||
testVenv = pythonSet.mkVirtualEnv "nix-builder-autoscaler-test-env" {
|
||||
buildbotExtPythonSet =
|
||||
(pkgs.callPackage pyproject-nix.build.packages {
|
||||
python = pkgs.python312;
|
||||
}).overrideScope
|
||||
(
|
||||
pkgs.lib.composeManyExtensions [
|
||||
pyproject-build-systems.overlays.default
|
||||
buildbotExtOverlay
|
||||
pyprojectOverrides
|
||||
]
|
||||
);
|
||||
testVenv = agentPythonSet.mkVirtualEnv "nix-builder-autoscaler-test-env" {
|
||||
nix-builder-autoscaler = [ "dev" ];
|
||||
};
|
||||
buildbotExtTestVenv = buildbotExtPythonSet.mkVirtualEnv "buildbot-autoscale-ext-test-env" {
|
||||
buildbot-autoscale-ext = [ "dev" ];
|
||||
};
|
||||
src = ./agent;
|
||||
buildbotExtSrc = ./buildbot-ext;
|
||||
in
|
||||
{
|
||||
devShell = self.devShells.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
|
|
@ -191,6 +229,66 @@
|
|||
touch $out/passed
|
||||
'';
|
||||
};
|
||||
|
||||
buildbot-autoscale-ext-tests = pkgs.stdenv.mkDerivation {
|
||||
name = "buildbot-autoscale-ext-tests";
|
||||
src = buildbotExtSrc;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
nativeBuildInputs = [ buildbotExtTestVenv ];
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
export HOME=$(mktemp -d)
|
||||
pytest buildbot_autoscale_ext/tests/ -v
|
||||
runHook postCheck
|
||||
'';
|
||||
doCheck = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
touch $out/passed
|
||||
'';
|
||||
};
|
||||
|
||||
buildbot-autoscale-ext-ruff = pkgs.stdenv.mkDerivation {
|
||||
name = "buildbot-autoscale-ext-ruff";
|
||||
src = buildbotExtSrc;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
nativeBuildInputs = [ buildbotExtTestVenv ];
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
ruff check buildbot_autoscale_ext/
|
||||
ruff format --check buildbot_autoscale_ext/
|
||||
runHook postCheck
|
||||
'';
|
||||
doCheck = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
touch $out/passed
|
||||
'';
|
||||
};
|
||||
|
||||
buildbot-autoscale-ext-pyright = pkgs.stdenv.mkDerivation {
|
||||
name = "buildbot-autoscale-ext-pyright";
|
||||
src = buildbotExtSrc;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
nativeBuildInputs = [
|
||||
buildbotExtTestVenv
|
||||
pkgs.nodejs
|
||||
];
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
export HOME=$(mktemp -d)
|
||||
pyright buildbot_autoscale_ext/
|
||||
runHook postCheck
|
||||
'';
|
||||
doCheck = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
touch $out/passed
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue