From 7ffad18fd2163ac9654e87e53a2f79983ef08411 Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Mon, 28 Sep 2020 10:49:24 +0200 Subject: [PATCH] Update CI script to build examples too --- nix/ci.sh | 7 +++++-- nix/via-hackage.nix | 11 ++++++++++- nix/via-stackage.nix | 12 ++++++++++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/nix/ci.sh b/nix/ci.sh index cbf3d21..5ae455a 100755 --- a/nix/ci.sh +++ b/nix/ci.sh @@ -1,3 +1,4 @@ +#!/bin/bash OUTDIR="ci-out" SUMMARY="$OUTDIR/0-summary" @@ -16,8 +17,10 @@ function build-one { # 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)) + nix-build -o "$OUTDIR/$ATTRPATH-build" nix/all.nix -A "\"$ATTRPATH\".allComponents"\ + 2> >(tee "$OUTDIR/$ATTRPATH-build.txt" >&2) + (($? == 0)) || { echo "$ATTRPATH: all-component build failed" >> "$SUMMARY"; return 1; } + nix-build -o "$OUTDIR/$ATTRPATH-test-result.txt" nix/all.nix -A "\"$ATTRPATH\".butcher.checks.tests" (($? == 0)) || { echo "$ATTRPATH: run test failed" >> "$SUMMARY"; return 1; } echo "$ATTRPATH: $(grep examples "$OUTDIR/$ATTRPATH-test-result.txt")" >> "$SUMMARY" } diff --git a/nix/via-hackage.nix b/nix/via-hackage.nix index cf0f8af..64ef698 100644 --- a/nix/via-hackage.nix +++ b/nix/via-hackage.nix @@ -11,7 +11,8 @@ let butcher-nix = pkgs.haskell-nix.callCabalProjectToNix { src = cleanedSource; - inherit index-state index-sha256 plan-sha256 materialized configureArgs; + inherit index-state index-sha256 plan-sha256 materialized; + configureArgs = configureArgs + " -fbutcher-examples"; # ghc = pkgs.haskell-nix.compiler.${ghc-ver}; compiler-nix-name = ghc-ver; }; @@ -26,12 +27,20 @@ in rec { pkg-def-extras = pkg-def-extras; modules = [ { ghc.package = pkgs.haskell-nix.compiler.${ghc-ver}; } + # (pkgs.haskell-nix.mkCacheModule generatedCache) + { packages.butcher.flags.butcher-examples = true; } ]; }; in pkg-set.config.hsPkgs; inherit (hsPkgs) butcher; inherit (hsPkgs.butcher) checks; + allComponents = pkgs.linkFarm + "allComponents" + (builtins.map + (x: { name = x.name; path = x; }) + (pkgs.haskell-nix.haskellLib.getAllComponents butcher)); + shell = hsPkgs.shellFor { # Include only the *local* packages of your project. packages = ps: with ps; [ diff --git a/nix/via-stackage.nix b/nix/via-stackage.nix index bb8f2cc..7866356 100644 --- a/nix/via-stackage.nix +++ b/nix/via-stackage.nix @@ -50,12 +50,20 @@ let hsPkgs = (pkgs.haskell-nix.mkStackPkgSet { stack-pkgs = butcher-plan; pkg-def-extras = pkg-def-extras; - modules = pkgs.lib.singleton (pkgs.haskell-nix.mkCacheModule generatedCache); + modules = [ (pkgs.haskell-nix.mkCacheModule generatedCache) + { packages.butcher.flags.butcher-examples = true; } + ]; }).config.hsPkgs; -in { +in rec { inherit butcher-nix butcher-plan hsPkgs pkgs; inherit (hsPkgs) butcher; inherit (hsPkgs.butcher) checks; + allComponents = pkgs.linkFarm + "allComponents" + (builtins.map + (x: { name = x.name; path = x; }) + (pkgs.haskell-nix.haskellLib.getAllComponents butcher)); + shell = hsPkgs.shellFor { # Include only the *local* packages of your project. packages = ps: with ps; [