From a5114cb505df9cab64b0daa3dc12a56abd4252e8 Mon Sep 17 00:00:00 2001 From: Michael Xavier Date: Thu, 2 Mar 2017 14:21:24 -0800 Subject: [PATCH] Rework travis build Perhaps supporting lts 2-8 is not the best idea. --- .travis.yml | 61 ++++++------------- .../Foundation.hs | 2 +- .../Import/NoFoundation.hs | 17 ++++++ .../test/TestImport.hs | 3 +- .../serversession-backend-acid-state.cabal | 2 + .../serversession-backend-redis.cabal | 2 + .../serversession-frontend-wai.cabal | 2 + stack_lts-2.yaml | 30 +++++++++ stack_lts-7.yaml | 30 +++++++++ stack_lts-8.yaml | 29 +++++++++ 10 files changed, 134 insertions(+), 44 deletions(-) create mode 100644 stack_lts-2.yaml create mode 100644 stack_lts-7.yaml create mode 100644 stack_lts-8.yaml diff --git a/.travis.yml b/.travis.yml index 21b13b1..47df279 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/examples/serversession-example-yesod-persistent/Foundation.hs b/examples/serversession-example-yesod-persistent/Foundation.hs index 966b511..b67cbf8 100644 --- a/examples/serversession-example-yesod-persistent/Foundation.hs +++ b/examples/serversession-example-yesod-persistent/Foundation.hs @@ -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 diff --git a/examples/serversession-example-yesod-persistent/Import/NoFoundation.hs b/examples/serversession-example-yesod-persistent/Import/NoFoundation.hs index 15bf2dc..10ce303 100644 --- a/examples/serversession-example-yesod-persistent/Import/NoFoundation.hs +++ b/examples/serversession-example-yesod-persistent/Import/NoFoundation.hs @@ -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 diff --git a/examples/serversession-example-yesod-persistent/test/TestImport.hs b/examples/serversession-example-yesod-persistent/test/TestImport.hs index 4fe7b3d..bf76210 100644 --- a/examples/serversession-example-yesod-persistent/test/TestImport.hs +++ b/examples/serversession-example-yesod-persistent/test/TestImport.hs @@ -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 diff --git a/serversession-backend-acid-state/serversession-backend-acid-state.cabal b/serversession-backend-acid-state/serversession-backend-acid-state.cabal index 95ea560..77c15f9 100644 --- a/serversession-backend-acid-state/serversession-backend-acid-state.cabal +++ b/serversession-backend-acid-state/serversession-backend-acid-state.cabal @@ -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 diff --git a/serversession-backend-redis/serversession-backend-redis.cabal b/serversession-backend-redis/serversession-backend-redis.cabal index ae7f0aa..86b2944 100644 --- a/serversession-backend-redis/serversession-backend-redis.cabal +++ b/serversession-backend-redis/serversession-backend-redis.cabal @@ -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 diff --git a/serversession-frontend-wai/serversession-frontend-wai.cabal b/serversession-frontend-wai/serversession-frontend-wai.cabal index 044e670..b656d15 100644 --- a/serversession-frontend-wai/serversession-frontend-wai.cabal +++ b/serversession-frontend-wai/serversession-frontend-wai.cabal @@ -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 diff --git a/stack_lts-2.yaml b/stack_lts-2.yaml new file mode 100644 index 0000000..bb51715 --- /dev/null +++ b/stack_lts-2.yaml @@ -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 diff --git a/stack_lts-7.yaml b/stack_lts-7.yaml new file mode 100644 index 0000000..b7b9f87 --- /dev/null +++ b/stack_lts-7.yaml @@ -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 diff --git a/stack_lts-8.yaml b/stack_lts-8.yaml new file mode 100644 index 0000000..b13bfbe --- /dev/null +++ b/stack_lts-8.yaml @@ -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