git.iko.soy/typeable/postgresql-simple
on master help sign in
Update CI configs
commit145dc893125efc436cbce3781d4434d87cf1edcb authorOleg Grenrus <oleg.grenrus@iki.fi> dateMon 2 Nov 2020, 23:36 (6 years ago) parent7c26751
6 files changed+133−18
.travis.yml+14−2 appveyor.yml+80 cabal.haskell-ci+10 cabal.project.local.win+4 postgresql-simple.cabal+10−9 test/Main.hs+15−7
.travis.yml+14−2
@@ -40,29 +40,41 @@ before_cache:
4040 - rm -rfv $CABALHOME/packages/head.hackage
4141jobs:
4242 include:
43− - compiler: ghc-8.8.1
44− addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.4"]}}
43+ - compiler: ghc-8.10.2
44+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.2","cabal-install-3.4"]}}
45+ env: DATABASE_CONNSTRING=travis
46+ os: linux
47+ - compiler: ghc-8.8.4
48+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.4","cabal-install-3.4"]}}
49+ env: DATABASE_CONNSTRING=travis
4550 os: linux
4651 - compiler: ghc-8.6.5
4752 addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.4"]}}
53+ env: DATABASE_CONNSTRING=travis
4854 os: linux
4955 - compiler: ghc-8.4.4
5056 addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.4"]}}
57+ env: DATABASE_CONNSTRING=travis
5158 os: linux
5259 - compiler: ghc-8.2.2
5360 addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.4"]}}
61+ env: DATABASE_CONNSTRING=travis
5462 os: linux
5563 - compiler: ghc-8.0.2
5664 addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.4"]}}
65+ env: DATABASE_CONNSTRING=travis
5766 os: linux
5867 - compiler: ghc-7.10.3
5968 addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.4"]}}
69+ env: DATABASE_CONNSTRING=travis
6070 os: linux
6171 - compiler: ghc-7.8.4
6272 addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.4"]}}
73+ env: DATABASE_CONNSTRING=travis
6374 os: linux
6475 - compiler: ghc-7.6.3
6576 addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.6.3","cabal-install-3.4"]}}
77+ env: DATABASE_CONNSTRING=travis
6678 os: linux
6779before_install:
6880 - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
appveyor.ymlnew file+80
@@ -0,0 +1,80 @@
1+clone_folder: "c:\\WORK"
2+
3+branches:
4+ only:
5+ - master
6+
7+services:
8+ - postgresql96
9+
10+environment:
11+ global:
12+ CABOPTS: "--store-dir=C:\\SR --http-transport=plain-http"
13+ PGUSER: postgres
14+ PGPASSWORD: Password12!
15+ PGPORT: "5432"
16+ DATABASE_CONNSTRING: appveyor
17+ matrix:
18+ # 64 bit builds
19+ - GHCVER: "8.8.1"
20+ CHOCOPTS:
21+ - GHCVER: "8.6.5"
22+ CHOCOPTS:
23+ - GHCVER: "8.4.4"
24+ CHOCOPTS:
25+ - GHCVER: "8.2.2"
26+ CHOCOPTS:
27+ - GHCVER: "8.0.2"
28+ CHOCOPTS:
29+ - GHCVER: "7.10.3.2"
30+ CHOCOPTS:
31+
32+ # Fails to link
33+ #
34+ # - GHCVER: "7.8.4.1"
35+ # CHOCOPTS:
36+
37+ # 32 bit builds
38+
39+ # Linker errors...
40+
41+ # - GHCVER: "8.6.5"
42+ # CHOCOPTS: --forcex86
43+ # - GHCVER: "8.4.4"
44+ # CHOCOPTS: --forcex86
45+ # - GHCVER: "8.2.2"
46+ # CHOCOPTS: --forcex86
47+
48+ # older segfault?
49+
50+cache:
51+- "C:\\SR"
52+
53+install:
54+ - "choco install -y ghc --version %GHCVER% %CHOCOPTS%"
55+ - "choco install -y cabal %CHOCOPTS%"
56+ - "refreshenv"
57+ - "set PATH=C:\\ghc\\ghc-%GHCVER%:C:\\msys64\\mingw64\\bin;C:\\msys64\\usr\\bin;%PATH%"
58+ - "cabal --version"
59+ - "ghc --version"
60+
61+ - set PATH=C:\Progra~1\PostgreSQL\9.6\bin\;%PATH%
62+
63+build: off
64+
65+test_script:
66+ - "cabal %CABOPTS% update -v"
67+ - createdb TestDb
68+ - IF EXIST configure.ac bash -c "autoreconf -i"
69+ - "move cabal.project.local.win cabal.project.local"
70+
71+ - "cabal %CABOPTS% v2-build -j1 libs test"
72+ # - "cabal %CABOPTS% v2-test -j1 all"
73+ - "cabal %CABOPTS% v2-run test"
74+ # - "cabal %CABOPTS% v2-run inspection" # only GHC-8.0 (or GHC-8.2+)
75+
76+ # Build from sdist
77+ - "rmdir /Q /S dist-newstyle"
78+ - "cabal v2-sdist"
79+ - "sh -c 'echo packages: dist-newstyle/sdist/*.tar.gz > cabal.project'"
80+ - "cabal v2-build -j1 postgresql-simple" # TODO: unfortunately the package name have to be here
cabal.haskell-ci+10
@@ -3,3 +3,13 @@ postgresql: True
33
44-- services aren't supported on Travis on macOS
55-- osx: 8.4.4
6+
7+env: 7.6.3:DATABASE_CONNSTRING=travis
8+env: 7.8.4:DATABASE_CONNSTRING=travis
9+env: 7.10.3:DATABASE_CONNSTRING=travis
10+env: 8.0.2:DATABASE_CONNSTRING=travis
11+env: 8.2.2:DATABASE_CONNSTRING=travis
12+env: 8.4.4:DATABASE_CONNSTRING=travis
13+env: 8.6.5:DATABASE_CONNSTRING=travis
14+env: 8.8.4:DATABASE_CONNSTRING=travis
15+env: 8.10.2:DATABASE_CONNSTRING=travis
cabal.project.local.winnew file+4
@@ -0,0 +1,4 @@
1+constraints: these -assoc
2+
3+package postgresql-libpq
4+ flags: -use-pkg-config
postgresql-simple.cabal+10−9
@@ -18,8 +18,8 @@ copyright:
1818category: Database
1919build-type: Simple
2020extra-source-files:
21− CONTRIBUTORS
2221 CHANGES.md
22+ CONTRIBUTORS
2323 test/results/malformed-input.expected
2424 test/results/unique-constraint-violation.expected
2525
@@ -31,7 +31,8 @@ tested-with:
3131 || ==8.2.2
3232 || ==8.4.4
3333 || ==8.6.5
34− || ==8.8.1
34+ || ==8.8.4
35+ || ==8.10.2
3536
3637library
3738 default-language: Haskell2010
@@ -41,11 +42,13 @@ library
4142 Database.PostgreSQL.Simple.Arrays
4243 Database.PostgreSQL.Simple.Copy
4344 Database.PostgreSQL.Simple.Cursor
45+ Database.PostgreSQL.Simple.Errors
4446 Database.PostgreSQL.Simple.FromField
4547 Database.PostgreSQL.Simple.FromRow
46− Database.PostgreSQL.Simple.LargeObjects
4748 Database.PostgreSQL.Simple.HStore
4849 Database.PostgreSQL.Simple.HStore.Internal
50+ Database.PostgreSQL.Simple.Internal
51+ Database.PostgreSQL.Simple.LargeObjects
4952 Database.PostgreSQL.Simple.Notification
5053 Database.PostgreSQL.Simple.Ok
5154 Database.PostgreSQL.Simple.Range
@@ -59,12 +62,9 @@ library
5962 Database.PostgreSQL.Simple.TypeInfo.Macro
6063 Database.PostgreSQL.Simple.TypeInfo.Static
6164 Database.PostgreSQL.Simple.Types
62− Database.PostgreSQL.Simple.Errors
6365 Database.PostgreSQL.Simple.Vector
6466 Database.PostgreSQL.Simple.Vector.Unboxed
6567
66− Database.PostgreSQL.Simple.Internal
67−
6868 -- Other-modules:
6969 other-modules:
7070 Database.PostgreSQL.Simple.Compat
@@ -107,11 +107,11 @@ library
107107 build-depends: ghc-prim
108108
109109 default-extensions:
110+ BangPatterns
110111 DoAndIfThenElse
111112 OverloadedStrings
112− BangPatterns
113− ViewPatterns
114113 TypeOperators
114+ ViewPatterns
115115
116116 ghc-options: -Wall -fno-warn-name-shadowing
117117
@@ -151,13 +151,14 @@ test-suite test
151151 Serializable
152152 Time
153153
154+ ghc-options: -threaded
154155 ghc-options: -Wall -fno-warn-name-shadowing -fno-warn-unused-do-bind
155156 default-extensions:
156157 NamedFieldPuns
157158 OverloadedStrings
159+ PatternGuards
158160 Rank2Types
159161 RecordWildCards
160− PatternGuards
161162 ScopedTypeVariables
162163
163164 build-depends:
test/Main.hs+15−7
@@ -25,6 +25,7 @@ import GHC.Generics (Generic)
2525import Data.Aeson
2626import Data.ByteString (ByteString)
2727import qualified Data.ByteString as B
28+import qualified Data.ByteString.Char8 as BS8
2829import qualified Data.ByteString.Lazy.Char8 as BL
2930import Data.CaseInsensitive (CI)
3031import qualified Data.CaseInsensitive as CI
@@ -36,6 +37,7 @@ import qualified Data.Vector as V
3637import System.FilePath
3738import System.Timeout(timeout)
3839import Data.Time(getCurrentTime, diffUTCTime)
40+import System.Environment (getEnvironment)
3941
4042import Test.Tasty
4143import Test.Tasty.Golden
@@ -546,18 +548,24 @@ isFormatError i FormatError{..}
546548--
547549-- Note that some tests, such as Notify, use multiple connections, and assume
548550-- that 'testConnect' connects to the same database every time it is called.
549−testConnect :: IO Connection
550−testConnect = connectPostgreSQL ""
551−
552−withTestEnv :: (TestEnv -> IO a) -> IO a
553−withTestEnv cb =
551+withTestEnv :: ByteString -> (TestEnv -> IO a) -> IO a
552+withTestEnv connstr cb =
554553 withConn $ \conn ->
555554 cb TestEnv
556555 { conn = conn
557556 , withConn = withConn
558557 }
559558 where
560− withConn = bracket testConnect close
559+ withConn = bracket (connectPostgreSQL connstr) close
561560
562561main :: IO ()
563−main = withTestEnv $ defaultMain . tests
562+main = do
563+ env <- getEnvironment
564+ case lookup "DATABASE_CONNSTRING" env of
565+ Nothing -> putStrLn "Set DATABASE_CONNSTRING environment variable"
566+ Just s -> withTestEnv (BS8.pack (special s)) (defaultMain . tests)
567+ where
568+ -- https://www.appveyor.com/docs/services-databases/
569+ special "appveyor" = "dbname='TestDb' user='postgres' password='Password12!'"
570+ special "travis" = ""
571+ special s = s