Build takes a lot of time on Travis CI (around 50 minutes for no-cache which is way too much)
Build in Travis CI is done using generic image (Ubuntu), maybe Haskell-specific would work better
Docker image for dsw-server is based on Ubuntu 14.04 which LTS ends on April 30, again, maybe Haskell-specific would work better
An option is to use Docker image designed for building dsw-server project, such image can be also pushed to public Docker Hub and then reused in Travis CI and even for local builds: https://docs.docker.com/develop/develop-images/multistage-build/
But not sure about pull/push builder image in case of multiple branches and tags. Maybe it should be also only per tag, latest, and develop branch in our case, e.g., dsw-server-builder:develop. Or there will be indeed just “develop” version in the registry named dsw-server:builder.
During this issue “build-info” should be also improved…
Since Haskell on Travis CI is again just Ubuntu but with different pre-installed stuff (and not stack), there is no reason for that. We will just upgrade to Ubuntu 16.04 (LTS) both in Travis CI and Dockerfile - sadly Travis does not support 18.04 yet (https://travis-ci.community/t/ubuntu-18-04-1-lts-bionic-beaver/1270/7). This will prolong support by 2 years. This upgrade require tests since more dependencies might be needed in Travis/Docker to build and run dsw-server.
Dockerfile.build will be prepared locally to test it for the future but not on Travis.
The upgrade to Ubuntu Xenial Xerus has been already done for 1.5 because of end of support of Trusty Tahr here: https://github.com/ds-wizard/dsw-server/pull/57
This issue will just try to improve performance with --system-ghc, investigate caching and update dependencies.