From 4d7f5a6e89522755cd8ef97c85fe9252db93ae6e Mon Sep 17 00:00:00 2001 From: cy Date: Fri, 28 Mar 2025 18:01:35 -0400 Subject: [PATCH 1/3] workflow: try yet another way to cache --- .../workflows/build-machines-and-homes.yml | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-machines-and-homes.yml b/.github/workflows/build-machines-and-homes.yml index 1272cc1..5fd1579 100644 --- a/.github/workflows/build-machines-and-homes.yml +++ b/.github/workflows/build-machines-and-homes.yml @@ -73,9 +73,18 @@ jobs: if: always() run: | package=".#nixosConfigurations."${{ matrix.machine }}".config.system.build.toplevel" - nix copy -j8 \ - --to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ - $(nix path-info --recursive --derivation "$package" |sed 's/\.drv$/.drv^*/') + derivations=() + while IFS=$'\n' read derivation; do + derivations+=("$derivation") + done < <(nix path-info --recursive --derivation "$package") + + for derivation in "${derivations[@]}"; do + cache+=( + ) + nix copy -j8 \ + --to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ + $(nix-store --query --requisites --include-outputs "$derivation") + done build-homes: strategy: @@ -132,6 +141,13 @@ jobs: if: always() run: | package=".#homeConfigurations."${{ matrix.home }}".activationPackage" - nix copy -j8 \ - --to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ - $(nix path-info --recursive --derivation "$package" |sed 's/\.drv$/.drv^*/') + derivations=() + while IFS=$'\n' read derivation; do + derivations+=("$derivation") + done < <(nix path-info --recursive --derivation "$package") + + for derivation in "${derivations[@]}"; do + nix copy -j8 \ + --to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ + $(nix-store --query --requisites --include-outputs "$derivation") + done From 96011436f792ac641f95694c9eded8adacb55874 Mon Sep 17 00:00:00 2001 From: cy Date: Fri, 28 Mar 2025 18:20:41 -0400 Subject: [PATCH 2/3] workflow: no recursive and temp no always() --- .github/workflows/build-machines-and-homes.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-machines-and-homes.yml b/.github/workflows/build-machines-and-homes.yml index 5fd1579..f04d05f 100644 --- a/.github/workflows/build-machines-and-homes.yml +++ b/.github/workflows/build-machines-and-homes.yml @@ -70,17 +70,15 @@ jobs: nix build -L "$package" - name: cache - if: always() + # if: always() run: | package=".#nixosConfigurations."${{ matrix.machine }}".config.system.build.toplevel" derivations=() while IFS=$'\n' read derivation; do derivations+=("$derivation") - done < <(nix path-info --recursive --derivation "$package") + done < <(nix path-info --derivation "$package") for derivation in "${derivations[@]}"; do - cache+=( - ) nix copy -j8 \ --to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ $(nix-store --query --requisites --include-outputs "$derivation") @@ -138,13 +136,13 @@ jobs: nix build -L "$package" - name: cache - if: always() + # if: always() run: | package=".#homeConfigurations."${{ matrix.home }}".activationPackage" derivations=() while IFS=$'\n' read derivation; do derivations+=("$derivation") - done < <(nix path-info --recursive --derivation "$package") + done < <(nix path-info --derivation "$package") for derivation in "${derivations[@]}"; do nix copy -j8 \ From dc781b5bc836ddce2b3536f3d47b5624b24afad2 Mon Sep 17 00:00:00 2001 From: cy Date: Fri, 28 Mar 2025 18:28:48 -0400 Subject: [PATCH 3/3] workflow: use !cancelled() instead of always() --- .github/workflows/build-machines-and-homes.yml | 6 ++++-- .github/workflows/build-packages.yml | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-machines-and-homes.yml b/.github/workflows/build-machines-and-homes.yml index f04d05f..2bf0350 100644 --- a/.github/workflows/build-machines-and-homes.yml +++ b/.github/workflows/build-machines-and-homes.yml @@ -70,7 +70,8 @@ jobs: nix build -L "$package" - name: cache - # if: always() + # https://stackoverflow.com/a/58859404 + if: '!cancelled()' run: | package=".#nixosConfigurations."${{ matrix.machine }}".config.system.build.toplevel" derivations=() @@ -136,7 +137,8 @@ jobs: nix build -L "$package" - name: cache - # if: always() + # https://stackoverflow.com/a/58859404 + if: '!cancelled()' run: | package=".#homeConfigurations."${{ matrix.home }}".activationPackage" derivations=() diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 637afbf..1118650 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -59,7 +59,8 @@ jobs: - run: nix build -L ${{ matrix.package }} - name: cache result - if: always() + # https://stackoverflow.com/a/58859404 + if: '!cancelled()' run: | nix copy -j8 \ --to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \