mirror of
https://gitlab.com/TECHNOFAB/nix-gitlab-ci.git
synced 2025-12-12 02:00:13 +01:00
41 lines
1.6 KiB
Bash
41 lines
1.6 KiB
Bash
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 -n "$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"
|
|
|