diff --git a/bin/test-example b/bin/test-example index 22f083d39..caadcfd5a 100755 --- a/bin/test-example +++ b/bin/test-example @@ -12,8 +12,16 @@ exercisedir=$(cd "$exampledir/../.." && pwd) exercisename=$(basename "$exercisedir") xhaskell=$(cd "$(dirname "$0")/.." && pwd) -buildfolder="${TRAVIS_BUILD_DIR:-$xhaskell}/build/${exercisename}/${examplename}" +# We would ideally use a tmpdir here, +# but stack will invalidate its cache if the path changes, +# so the best alternative seems to be to put it in xhaskell. +buildfolder="${xhaskell}/build/${exercisename}/${examplename}" mkdir -p "${buildfolder}" +cleanup() { + rm -r "${xhaskell}/build" +} +trap cleanup EXIT INT TERM + cp -R -L ${exercisedir}/stack.yaml ${exercisedir}/test ${exampledir}/* "${buildfolder}" cd $buildfolder diff --git a/bin/test-stub b/bin/test-stub index db3141612..4bfd4b2ff 100755 --- a/bin/test-stub +++ b/bin/test-stub @@ -10,8 +10,16 @@ exercisename=$(basename "$exercisedir") examplename="stub" xhaskell=$(cd "$(dirname "$0")/.." && pwd) -buildfolder="${TRAVIS_BUILD_DIR:-$xhaskell}/build/${exercisename}/${examplename}" +# We would ideally use a tmpdir here, +# but stack will invalidate its cache if the path changes, +# so the best alternative seems to be to put it in xhaskell. +buildfolder="${xhaskell}/build/${exercisename}/${examplename}" mkdir -p "${buildfolder}" +cleanup() { + rm -r "${xhaskell}/build" +} +trap cleanup EXIT INT TERM + cp -R -L ${exercisedir}/stack.yaml ${exercisedir}/package.yaml ${exercisedir}/src ${exercisedir}/test "${buildfolder}" cd $buildfolder