butcher/nix/ci.sh

51 lines
1.7 KiB
Bash
Executable File

OUTDIR="ci-out"
SUMMARY="$OUTDIR/0-summary"
CABAL_CHECK_ATTRPATH="hackage-8.10"
set -x
mkdir -p "$OUTDIR"
echo "# test summary" > "$SUMMARY"
function build-one {
local ATTRPATH=$1
# nix-build --no-out-link nix/all.nix -A "\"$ATTRPATH\".butcher.components.library"\
# 2> >(tee "$OUTDIR/$ATTRPATH-1-build-lib.txt" >&2)
# (($? == 0)) || { echo "$ATTRPATH: build src failed" >> "$SUMMARY"; return 1; }
# nix-build --no-out-link nix/all.nix -A "\"$ATTRPATH\".butcher.components.tests"\
# 2> >(tee "$OUTDIR/$ATTRPATH-2-build-test.txt" >&2)
# (($? == 0)) || { echo "$ATTRPATH: build test failed" >> "$SUMMARY"; return 1; }
OUT=$(nix-build -o "$OUTDIR/$ATTRPATH-test-result.txt" nix/all.nix -A "\"$ATTRPATH\".butcher.checks.tests"\
2> >(tee "$OUTDIR/$ATTRPATH-build.txt" >&2))
(($? == 0)) || { echo "$ATTRPATH: run test failed" >> "$SUMMARY"; return 1; }
echo "$ATTRPATH: $(grep examples "$OUTDIR/$ATTRPATH-test-result.txt")" >> "$SUMMARY"
}
function cabal-check {
nix-build --no-out-link nix/all.nix -A "\"$CABAL_CHECK_ATTRPATH\".checks.cabal-check"\
2> >(tee "$OUTDIR/cabal-check.txt" >&2)
(($? == 0)) || { echo "cabal-check: failed" >> "$SUMMARY"; return 1; }
echo "cabal-check: success" >> "$SUMMARY"
}
find "$OUTDIR" -name "stackage*" -delete
find "$OUTDIR" -name "hackage*" -delete
rm "$OUTDIR/cabal-check.txt"
CLEANEDSOURCE=$(nix-instantiate --eval --read-write-mode nix/all.nix -A "cleanedSource.outPath")
(($? == 0)) || exit 1
( eval "cd $CLEANEDSOURCE; find" ) > "$OUTDIR/1-cleanedSource.txt"
build-one "stackage-8.4"
build-one "stackage-8.6"
build-one "stackage-8.8"
build-one "hackage-8.4"
build-one "hackage-8.6"
build-one "hackage-8.8"
build-one "hackage-8.10"
cabal-check
cat "$SUMMARY"