why the fuck was i zeroing the stats?
switched to socketed sccache server wrote a systemd service to spin that socket up
This commit is contained in:
parent
d6ac6c94b6
commit
374c73c925
2 changed files with 32 additions and 3 deletions
|
|
@ -6,6 +6,7 @@
|
|||
kernelPatches ? [ ],
|
||||
extraConfig ? "",
|
||||
sccacheDir ? "/var/cache/sccache",
|
||||
sccacheServerUds ? "/run/sccache/server.sock",
|
||||
enforceSccache ? true,
|
||||
}:
|
||||
|
||||
|
|
@ -62,6 +63,7 @@ pkgs.callPackage (
|
|||
pkgs.writeShellScriptBin name ''
|
||||
set -euo pipefail
|
||||
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
|
||||
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
|
||||
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
|
||||
: > "''${SCCACHE_ENFORCE_MARKER}"
|
||||
fi
|
||||
|
|
@ -74,6 +76,7 @@ pkgs.callPackage (
|
|||
rustcSccache = pkgs.writeShellScriptBin "rustc" ''
|
||||
set -euo pipefail
|
||||
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
|
||||
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
|
||||
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
|
||||
: > "''${SCCACHE_ENFORCE_MARKER}"
|
||||
fi
|
||||
|
|
@ -83,6 +86,7 @@ pkgs.callPackage (
|
|||
hostrustcSccache = pkgs.writeShellScriptBin "rustc" ''
|
||||
set -euo pipefail
|
||||
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
|
||||
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
|
||||
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
|
||||
: > "''${SCCACHE_ENFORCE_MARKER}"
|
||||
fi
|
||||
|
|
@ -131,18 +135,19 @@ pkgs.callPackage (
|
|||
]
|
||||
;
|
||||
|
||||
# Start with clean stats so the build-phase check reports only this build.
|
||||
preBuild =
|
||||
(args.preBuild or "")
|
||||
+ lib.optionalString enforceSccache ''
|
||||
${pkgs.sccache}/bin/sccache --start-server || true
|
||||
${pkgs.sccache}/bin/sccache --zero-stats || true
|
||||
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
|
||||
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
|
||||
'';
|
||||
|
||||
buildPhase =
|
||||
if enforceSccache then
|
||||
''
|
||||
runHook preBuild
|
||||
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
|
||||
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
|
||||
export SCCACHE_ENFORCE_MARKER="$NIX_BUILD_TOP/.sccache-used"
|
||||
rm -f "$SCCACHE_ENFORCE_MARKER"
|
||||
make "''${makeFlags[@]}" "''${buildFlags[@]}"
|
||||
|
|
|
|||
24
flake.nix
24
flake.nix
|
|
@ -113,6 +113,7 @@
|
|||
"thek0tyara"
|
||||
];
|
||||
extra-sandbox-paths = [
|
||||
"/run/sccache"
|
||||
"/var/cache/sccache"
|
||||
];
|
||||
download-buffer-size = 160000000;
|
||||
|
|
@ -121,6 +122,29 @@
|
|||
# setgid, чтобы файлы/папки сохраняли группу nixbld
|
||||
"d /var/cache/sccache 2770 root nixbld - -"
|
||||
];
|
||||
systemd.services.sccache = {
|
||||
description = "Shared sccache server for Nix builds";
|
||||
after = [ "local-fs.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
User = "root";
|
||||
Group = "nixbld";
|
||||
RuntimeDirectory = "sccache";
|
||||
RuntimeDirectoryMode = "0770";
|
||||
UMask = "0007";
|
||||
ExecStart = "${pkgs.sccache}/bin/sccache";
|
||||
Restart = "always";
|
||||
RestartSec = 2;
|
||||
};
|
||||
environment = {
|
||||
SCCACHE_DIR = "/var/cache/sccache";
|
||||
SCCACHE_SERVER_UDS = "/run/sccache/server.sock";
|
||||
SCCACHE_IDLE_TIMEOUT = "0";
|
||||
SCCACHE_START_SERVER = "1";
|
||||
SCCACHE_NO_DAEMON = "1";
|
||||
};
|
||||
};
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue