67 lines
2.2 KiB
Bash
Executable file
67 lines
2.2 KiB
Bash
Executable file
#! /usr/bin/env nix-shell
|
|
#! nix-shell -i bash -p coreutils git -I nixpkgs=.
|
|
|
|
# This script uses the data pulled with
|
|
# maintainers/scripts/haskell/hydra-report.hs get-report to produce a list of
|
|
# failing builds that get written to the hackage2nix config. Then
|
|
# hackage-packages.nix gets regenerated and transitive-broken packages get
|
|
# marked as dont-distribute in the config as well.
|
|
# This should disable builds for most failing jobs in the haskell-updates jobset.
|
|
|
|
set -euo pipefail
|
|
|
|
do_commit=false
|
|
mark_broken_list_flags=""
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--do-commit)
|
|
do_commit=true
|
|
;;
|
|
--no-request-logs)
|
|
mark_broken_list_flags="$mark_broken_list_flags $arg"
|
|
;;
|
|
*)
|
|
echo "$0: unknown flag: $arg"
|
|
exit 100
|
|
;;
|
|
esac
|
|
done
|
|
|
|
broken_config="pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml"
|
|
|
|
tmpfile=$(mktemp)
|
|
trap "rm ${tmpfile}" 0
|
|
|
|
echo "Remember that you need to manually run 'maintainers/scripts/haskell/hydra-report.hs get-report' sometime before running this script."
|
|
echo "Generating a list of broken builds and displaying for manual confirmation ..."
|
|
maintainers/scripts/haskell/hydra-report.hs mark-broken-list $mark_broken_list_flags | sort -i > "$tmpfile"
|
|
|
|
$EDITOR "$tmpfile"
|
|
|
|
tail -n +3 "$broken_config" >> "$tmpfile"
|
|
|
|
cat > "$broken_config" << EOF
|
|
broken-packages:
|
|
# These packages don't compile.
|
|
EOF
|
|
|
|
# clear environment here to avoid things like allowing broken builds in
|
|
sort -iu "$tmpfile" >> "$broken_config"
|
|
clear="env -u HOME -u NIXPKGS_CONFIG"
|
|
$clear maintainers/scripts/haskell/regenerate-hackage-packages.sh
|
|
evalline=$(maintainers/scripts/haskell/hydra-report.hs eval-info)
|
|
|
|
if $do_commit; then
|
|
git add $broken_config
|
|
git add pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
|
|
git add pkgs/development/haskell-modules/hackage-packages.nix
|
|
git commit -F - << EOF
|
|
haskellPackages: mark builds failing on hydra as broken
|
|
|
|
This commit has been generated by maintainers/scripts/haskell/mark-broken.sh based on
|
|
$evalline
|
|
from the haskell-updates jobset on hydra under https://hydra.nixos.org/jobset/nixpkgs/haskell-updates
|
|
EOF
|
|
fi
|