ci: set pipefail

Don't add inputs to gc roots
This commit is contained in:
teutat3s 2024-05-14 23:22:09 +02:00
parent 091256b67a
commit c2df933174
Signed by untrusted user: teutat3s
GPG key ID: 4FA1D3FA524F22C1

View file

@ -52,6 +52,7 @@ jobs:
- name: Run flake checks - name: Run flake checks
run: | run: |
set -exuo pipefail
# Prevent cache garbage collection by creating GC roots # Prevent cache garbage collection by creating GC roots
for target in $(nix flake show --json --all-systems | jq ' for target in $(nix flake show --json --all-systems | jq '
.["nixosConfigurations"] | .["nixosConfigurations"] |
@ -60,16 +61,7 @@ jobs:
' | tr -d '"' ' | tr -d '"'
); do ); do
nix --print-build-logs --verbose --accept-flake-config --access-tokens '' \ nix --print-build-logs --verbose --accept-flake-config --access-tokens '' \
build --out-link ./result-$target ".#nixosConfigurations.${target}.config.system.build.toplevel" build --out-link ./result-"$target" ".#nixosConfigurations.${target}.config.system.build.toplevel"
done done
nix --print-build-logs --verbose --accept-flake-config --access-tokens '' flake check nix --print-build-logs --verbose --accept-flake-config --access-tokens '' flake check
# Add GC roots for flake inputs, too
# https://github.com/NixOS/nix/issues/4250#issuecomment-1146878407
mkdir --parents "$NIX_USER_PROFILE_DIR"
gc_root_prefix="$NIX_USER_PROFILE_DIR"/infra-flake-
echo "Adding gcroots flake inputs with prefix $gc_root_prefix ..."
nix flake archive --json 2>/dev/null | jq --raw-output '.inputs | to_entries[] | "ln --force --symbolic --no-target-directory "+.value.path+" \"'"$gc_root_prefix"'"+.key+"\""' | while read -r line; do
eval "$line"
done