echo -e "\\e[0Ksection_start:`date +%s`:finalize_nix_ci[collapsed=true]\\r\\e[0KFinalizing Nix CI..." nix path-info --all > /tmp/nix-store-after echo "Finding new paths..." NEW_PATHS=$(diff --new-line-format="%L" \ --old-line-format="" --unchanged-line-format="" \ /tmp/nix-store-before /tmp/nix-store-after) COUNT=$(wc -l <<<"$NEW_PATHS") if [[ "$NIX_CI_CACHE_STRATEGY" == "auto" ]]; then export NIX_CI_CACHE_STRATEGY="${NIX_CI_RUNNER_CACHE_STRATEGY:-${NIX_CI_DEFAULT_CACHE_STRATEGY:-none}}"; fi if [ -z "$NIX_CI_DISABLE_CACHE" ]; then echo -e "\\e[0Ksection_start:`date +%s`:cache_push[collapsed=true]\\r\\e[0KPushing $COUNT new store paths to cache ($NIX_CI_CACHE_STRATEGY)" echo $NEW_PATHS | { case "$NIX_CI_CACHE_STRATEGY" in "runner") export RUNNER_CACHE=''${RUNNER_CACHE:-"file://$(pwd)/.nix-cache"} # add ^* to all store paths ending in .drv (prevent warning log spam) sed '/\.drv$/s/$/^*/' | nix copy --quiet --to "$RUNNER_CACHE" --stdin || true ;; "attic") attic push --stdin ci:$ATTIC_CACHE || true ;; "cachix") cachix push $CACHIX_CACHE || true ;; "none") echo "Cache strategy is none, doing nothing..." ;; *) echo "WARNING: Invalid cache strategy set: '$NIX_CI_CACHE_STRATEGY'" ;; esac } echo -e "\\e[0Ksection_end:`date +%s`:cache_push\\r\\e[0K" else echo "Caching disabled, not uploading $COUNT new store entries..." fi echo -e "\\e[0Ksection_end:`date +%s`:finalize_nix_ci\\r\\e[0K"