diff --git a/.travis.yml b/.travis.yml
index dc717451b..d5924c24c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -118,13 +118,8 @@ script:
       ;;
     cabal)
       cabal configure --enable-tests --enable-benchmarks -v2 -ffast --ghc-options="-O0 -Wall -fno-warn-unused-do-bind -Werror" && \
-      cabal build -j && \
-      cabal check && \
-      cabal test -j && \
-      cabal copy && \
-      cabal sdist && \
-      SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && \
-      cd dist && \
-      cabal install -j -v2 -ffast --ghc-options="-O0 -Wall -fno-warn-unused-do-bind -Werror" --force-reinstall "$SRC_TGZ"
+      cabal sdist --output-directory=sourcedist && \
+      cd sourcedist && \
+      cabal install -j -v2 -ffast --ghc-options="-O0 -Wall -fno-warn-unused-do-bind -Werror" --force-reinstall --test
       ;;
   esac