Rework travis build

Perhaps supporting lts 2-8 is not the best idea.
This commit is contained in:
Michael Xavier 2017-03-02 14:21:24 -08:00
parent 399463f8c5
commit a5114cb505
10 changed files with 134 additions and 44 deletions

View File

@ -19,62 +19,39 @@ cache:
matrix:
include:
- env: GHCVER=7.8.4 RESOLVER=lts-2.22 EXTRADEPS="hedis-0.6.6" STACKARGS="--flag serversession-backend-redis:old-locale"
addons:
apt:
sources:
- hvr-ghc
packages:
- ghc-7.8.4
- env: GHCVER=7.10.2 RESOLVER=lts-3.4 EXTRADEPS="" STACKARGS=""
addons:
apt:
sources:
- hvr-ghc
packages:
- ghc-7.10.2
- env: GHCVER=7.10.2 RESOLVER=lts-3.20 EXTRADEPS="" STACKARGS=""
addons:
apt:
sources:
- hvr-ghc
packages:
- ghc-7.10.2
- env: GHCVER=head RESOLVER=nightly EXTRADEPS="" STACKARGS=""
addons:
apt:
sources:
- hvr-ghc
packages:
- ghc-head
- env: GHCVER=head RESOLVER=nightly EXTRADEPS="" STACKARGS="--stack-yaml=stack_nightly.yaml"
- env: STACKARGS="--flag serversession-backend-redis:old-locale --stack-yaml=stack_lts-2.yaml"
- env: STACKARGS="--resolver=lts-3"
- env: STACKARGS="--resolver=lts-4"
- env: STACKARGS="--resolver=lts-5"
- env: STACKARGS="--resolver=lts-6"
- env: STACKARGS="--resolver=lts-7"
- env: STACKARGS="--stack-yaml=stack_lts-7.yaml"
- env: STACKARGS="--stack-yaml=stack_nightly.yaml"
allow_failures:
- env: STACKARGS="--stack-yaml=stack_nightly.yaml"
before_install:
# Download and unpack the stack executable
- mkdir -p ~/.local/bin
- export PATH=$HOME/.local/bin:$PATH
- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
- export PATH=/opt/ghc/$GHCVER/bin:$PATH
- export RUNSTACK="stack --no-terminal --skip-ghc-check --system-ghc --resolver=$RESOLVER"
install:
- $RUNSTACK --version
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- $RUNSTACK install alex happy
before_script:
- psql -c "CREATE USER test WITH PASSWORD 'test';" -U postgres
- psql -c "CREATE DATABASE test;" -U postgres
- psql -c "GRANT ALL PRIVILEGES ON DATABASE test TO test;" -U postgres
- for dep in $EXTRADEPS; do echo " - $dep" >> stack.yaml; done
install:
- stack setup $STACKARGS
script:
- $RUNSTACK test $STACKARGS serversession
- $RUNSTACK test $STACKARGS serversession-backend-acid-state
- stack test $STACKARGS serversession
- stack test $STACKARGS serversession-backend-acid-state
- du -hcs serversession-backend-acid-state/state; rm -Rfv serversession-backend-acid-state/state
- $RUNSTACK test $STACKARGS serversession-backend-persistent --test-arguments='"--skip=100 MiB"'
- stack test $STACKARGS serversession-backend-persistent --test-arguments='"--skip=100 MiB"'
- du -hcs serversession-backend-persistent/test.db*; rm -Rfv serversession-backend-persistent/test.db*
- psql -c 'SELECT COUNT(*) FROM "persistent_session";' -U test test; psql -c 'DROP DATABASE test;' -U postgres
- $RUNSTACK test $STACKARGS serversession-backend-redis
- stack test $STACKARGS serversession-backend-redis
- redis-cli FLUSHALL
- $RUNSTACK test $STACKARGS --no-run-tests # Make sure everything else builds
- stack test $STACKARGS --no-run-tests # Make sure everything else builds
- stack $STACKARGS sdist

View File

@ -151,7 +151,7 @@ instance YesodAuthPersist App
instance RenderMessage App FormMessage where
renderMessage _ _ = defaultFormMessage
unsafeHandler :: App -> Handler a -> IO a
unsafeHandler :: App -> Foundation.Handler a -> IO a
unsafeHandler = Unsafe.fakeHandlerGetLogger appLogger
-- Note: Some functionality previously present in the scaffolding has been

View File

@ -1,5 +1,12 @@
{-# LANGUAGE CPP #-}
module Import.NoFoundation
( module Import
#if !MIN_VERSION_yaml(0,8,16)
, loadYamlSettings
#endif
#if !MIN_VERSION_yaml(0,8,17)
, loadYamlSettingsArgs
#endif
) where
import ClassyPrelude.Yesod as Import
@ -9,3 +16,13 @@ import Settings.StaticFiles as Import
import Yesod.Auth as Import
import Yesod.Core.Types as Import (loggerSet)
import Yesod.Default.Config2 as Import
#if !MIN_VERSION_yaml(0,8,16)
loadYamlSettings :: FromJSON settings => [FilePath] -> [Value] -> EnvUsage -> IO settings
loadYamlSettings = loadAppSettings
#endif
#if !MIN_VERSION_yaml(0,8,17)
loadYamlSettingsArgs :: FromJSON settings => [Value] -> EnvUsage -> IO settings
loadYamlSettingsArgs = loadAppSettingsArgs
#endif

View File

@ -8,9 +8,10 @@ import ClassyPrelude as X
import Database.Persist as X hiding (delete, deleteBy, get)
import Database.Persist.Sql (SqlPersistM, SqlBackend, runSqlPersistMPool, rawExecute, rawSql, unSingle, connEscapeName)
import Foundation as X hiding (Handler)
import Import.NoFoundation (loadYamlSettings)
import Model as X
import Test.Hspec as X
import Yesod.Default.Config2 (ignoreEnv, loadYamlSettings)
import Yesod.Default.Config2 (ignoreEnv)
import Yesod.Test as X
-- Wiping the database

View File

@ -41,6 +41,8 @@ library
ghc-options: -Wall
if flag(lib-Werror)
ghc-options: -Werror
if impl(ghc >= 8.0.0)
ghc-options: -Wno-redundant-constraints
test-suite tests

View File

@ -53,6 +53,8 @@ library
ghc-options: -Wall
if flag(lib-Werror)
ghc-options: -Werror
if impl(ghc >= 8.0.0)
ghc-options: -Wno-redundant-constraints

View File

@ -44,6 +44,8 @@ library
ghc-options: -Wall
if flag(lib-Werror)
ghc-options: -Werror
if impl(ghc >= 8.0.0)
ghc-options: -Wno-redundant-constraints
source-repository head
type: git

30
stack_lts-2.yaml Normal file
View File

@ -0,0 +1,30 @@
resolver: lts-2.22
packages:
- serversession
- serversession-backend-acid-state
- serversession-backend-persistent
- serversession-backend-redis
- serversession-frontend-snap
- serversession-frontend-wai
- serversession-frontend-yesod
- examples/serversession-example-yesod-persistent
flags:
serversession:
lib-Werror: true
serversession-backend-acid-state:
lib-Werror: true
serversession-backend-persistent:
lib-Werror: true
serversession-backend-redis:
lib-Werror: true
serversession-frontend-snap:
lib-Werror: true
serversession-frontend-wai:
lib-Werror: true
serversession-frontend-yesod:
lib-Werror: true
extra-deps:
- acid-state-0.14.0
- nonce-1.0.2
- wai-session-0.3.2
- hedis-0.6.6

30
stack_lts-7.yaml Normal file
View File

@ -0,0 +1,30 @@
resolver: lts-7.19
packages:
- serversession
- serversession-backend-acid-state
- serversession-backend-persistent
- serversession-backend-redis
- serversession-frontend-snap
- serversession-frontend-wai
- serversession-frontend-yesod
- examples/serversession-example-yesod-persistent
flags:
serversession:
lib-Werror: true
serversession-backend-acid-state:
lib-Werror: true
serversession-backend-persistent:
lib-Werror: true
serversession-backend-redis:
lib-Werror: true
serversession-frontend-snap:
lib-Werror: true
serversession-frontend-wai:
lib-Werror: true
serversession-frontend-yesod:
lib-Werror: true
extra-deps:
- snap-1.0.0.1
- heist-1.0.1.0
- map-syntax-0.2.0.2
- classy-prelude-yesod-1.1.0

29
stack_lts-8.yaml Normal file
View File

@ -0,0 +1,29 @@
resolver: lts-8.3
packages:
- serversession
- serversession-backend-acid-state
- serversession-backend-persistent
- serversession-backend-redis
- serversession-frontend-snap
- serversession-frontend-wai
- serversession-frontend-yesod
- examples/serversession-example-yesod-persistent
flags:
serversession:
lib-Werror: true
serversession-backend-acid-state:
lib-Werror: true
serversession-backend-persistent:
lib-Werror: true
serversession-backend-redis:
lib-Werror: true
serversession-frontend-snap:
lib-Werror: true
serversession-frontend-wai:
lib-Werror: true
serversession-frontend-yesod:
lib-Werror: true
extra-deps:
- snap-1.0.0.1
- heist-1.0.1.0
- map-syntax-0.2.0.2