diff --git a/.github/workflows/build-machines-and-homes.yml b/.github/workflows/build-machines-and-homes.yml index 1272cc1..2bf0350 100644 --- a/.github/workflows/build-machines-and-homes.yml +++ b/.github/workflows/build-machines-and-homes.yml @@ -70,12 +70,20 @@ 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" - 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 --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: strategy: @@ -129,9 +137,17 @@ jobs: nix build -L "$package" - name: cache - if: always() + # https://stackoverflow.com/a/58859404 + if: '!cancelled()' 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 --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 diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 637afbf..cd3c273 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -59,11 +59,19 @@ 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' \ - $(nix path-info --recursive --derivation "${{ matrix.package }}" |sed 's/\.drv$/.drv^*/') + derivations=() + while IFS=$'\n' read derivation; do + 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 run: nix run github:nixos/nixpkgs#gnutar hcvf result.tar result diff --git a/flake.lock b/flake.lock index fb7918a..ebf3a62 100644 --- a/flake.lock +++ b/flake.lock @@ -455,11 +455,11 @@ ] }, "locked": { - "lastModified": 1743136572, - "narHash": "sha256-uwaVrKgi6g1TUq56247j6QvvFtYHloCkjCrEpGBvV54=", + "lastModified": 1743267068, + "narHash": "sha256-G7866vbO5jgqMcYJzgbxej40O6mBGQMGt6gM0himjoA=", "owner": "nix-community", "repo": "home-manager", - "rev": "1efd2503172016a6742c87b47b43ca2c8145607d", + "rev": "b431496538b0e294fbe44a1441b24ae8195c63f0", "type": "github" }, "original": { @@ -828,11 +828,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1743169207, - "narHash": "sha256-JVBHFruzE0/uCMbp8c6f/0mtMLO05Gs5kOo8RYsJss0=", + "lastModified": 1743256265, + "narHash": "sha256-1GJtabBAEwSkwKgSBe+osLCYwcRr5zx5H7ipuoVkO/4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "360e0a6013f94d32ea86050d3646e3ccba1c2667", + "rev": "5dab1e63b3efccf767a54b0b978b41fe7410aff0", "type": "github" }, "original": { @@ -997,11 +997,11 @@ ] }, "locked": { - "lastModified": 1743129211, - "narHash": "sha256-gE8t+U9miTwm2NYWS9dFY8H1/QB4ifaFDq1KdV9KEqo=", + "lastModified": 1743215516, + "narHash": "sha256-52qbrkG65U1hyrQWltgHTgH4nm0SJL+9TWv2UDCEPNI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "f93da1d26ba9963f34f94a6872b67a7939699543", + "rev": "524463199fdee49338006b049bc376b965a2cfed", "type": "github" }, "original": { @@ -1090,11 +1090,11 @@ ] }, "locked": { - "lastModified": 1743126894, - "narHash": "sha256-FUsh0AWH3ndHvZsGkAf0Ng/wn8z9JydhhkICYoU4aEk=", + "lastModified": 1743213162, + "narHash": "sha256-9UU0x2fZORsX6PEpzkIAD/7+bwm+javJtZA/411ZmLg=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "2473e00df450ad863f552f2cc8da78e6a942118d", + "rev": "1b2a53e3478225bc35d14ae75ea9e7b749c16d5b", "type": "github" }, "original": {