Hi all,
Two colleagues at Tweag helped me come up with this script that I found really useful. It helps you find the last successful build of a package from Hydra and spits out the nixpkgs commit like this:
./check-hydra.sh haskellPackages.Frames
Hydra URL: https://hydra.nixos.org/build/170350779
last working nixpkgs revision: "710fed5a2483f945b14f4a58af2cd3676b42d8c8", evaluated at Wed Mar 30 11:46:08 CEST 2022
I feel it could almost be included as nix run --latest-unbroken nixpkgs#haskellPackages.Frames
.
Here is the check-hydra.sh
script:
#!/usr/bin/env nix-shell
#! nix-shell --pure -i bash
#! nix-shell -p hydra-check -p curl -p jq
#
set -e
package=$1
hydraURL=$(hydra-check --json "$package" | jq ".\"$package\" | .[0].build_url" -r)
echo "Hydra URL: $hydraURL"
evalID=$(curl -sH 'Accept: application/json' "$hydraURL" | jq '.jobsetevals | .[0]')
eval=$(curl -sH 'Accept: application/json' https://hydra.nixos.org/eval/"$evalID")
rev=$(echo "$eval" | jq '.jobsetevalinputs.nixpkgs.revision')
evalDate=$(date --date @"$(echo "$eval" | jq '.timestamp')")
echo "last working nixpkgs revision: $rev, evaluated at $evalDate"