workflow: try yet another way to cache

This commit is contained in:
cy 2025-03-28 18:01:35 -04:00
parent 47e5c5cd77
commit 1537fd6444
Signed by: cy
SSH key fingerprint: SHA256:o/geVWV4om1QhUSkKvDQeW/eAihwnjyXkqMwrVdbuts
2 changed files with 32 additions and 11 deletions

View file

@ -70,12 +70,19 @@ jobs:
nix build -L "$package" nix build -L "$package"
- name: cache - name: cache
if: always() # if: always()
run: | run: |
package=".#nixosConfigurations."${{ matrix.machine }}".config.system.build.toplevel" package=".#nixosConfigurations."${{ matrix.machine }}".config.system.build.toplevel"
nix copy -j8 \ derivations=()
--to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ while IFS=$'\n' read derivation; do
$(nix path-info --recursive --derivation "$package" |sed 's/\.drv$/.drv^*/') derivations+=("$derivation")
done < <(nix path-info --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
build-homes: build-homes:
strategy: strategy:
@ -129,9 +136,16 @@ jobs:
nix build -L "$package" nix build -L "$package"
- name: cache - name: cache
if: always() # if: always()
run: | run: |
package=".#homeConfigurations."${{ matrix.home }}".activationPackage" package=".#homeConfigurations."${{ matrix.home }}".activationPackage"
nix copy -j8 \ derivations=()
--to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ while IFS=$'\n' read derivation; do
$(nix path-info --recursive --derivation "$package" |sed 's/\.drv$/.drv^*/') derivations+=("$derivation")
done < <(nix path-info --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

View file

@ -61,9 +61,16 @@ jobs:
- name: cache result - name: cache result
if: always() if: always()
run: | run: |
nix copy -j8 \ derivations=()
--to 's3://nixcache?endpoint=s3.cy7.sh&secret-key=/home/runner/cache-priv-key.pem' \ while IFS=$'\n' read derivation; do
$(nix path-info --recursive --derivation "${{ matrix.package }}" |sed 's/\.drv$/.drv^*/') derivations+=("$derivation")
done < <(nix path-info --derivation "${{ matrix.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
- name: prepare tarball to upload - name: prepare tarball to upload
run: nix run github:nixos/nixpkgs#gnutar hcvf result.tar result run: nix run github:nixos/nixpkgs#gnutar hcvf result.tar result