#! /usr/bin/env bash set -e set -ux seed=$(date) log=$MAGIC_NIX_CACHE_DAEMONDIR/daemon.log binary_cache=https://cache.flakehub.com # Check that the action initialized correctly. grep 'FlakeHub cache is enabled' $log grep 'Using cache' $log grep 'GitHub Action cache is enabled' $log # Build something. outpath=$(nix-build .github/workflows/cache-tester.nix --argstr seed "$seed") # Check that the path was enqueued to be pushed to the cache. grep "Enqueueing.*$outpath" $log # Wait until it has been pushed succesfully. found= for ((i = 0; i < 60; i++)); do sleep 1 if grep "✅ $(basename $outpath)" $log; then found=1 break fi done if [[ -z $found ]]; then echo "FlakeHub push did not happen." >&2 exit 1 fi # Check the FlakeHub binary cache to see if the path is really there. nix path-info --store "$binary_cache" $outpath # FIXME: remove this once the daemon also uploads to GHA automatically. nix copy --to 'http://127.0.0.1:37515' "$outpath" rm ./result nix store delete "$outpath" if [ -f "$outpath" ]; then echo "$outpath still exists? can't test" exit 1 fi rm -rf ~/.cache/nix echo "-------" echo "Trying to substitute the build again..." echo "if it fails, the cache is broken." nix-store --realize -vvvvvvvv "$outpath"