on master help sign in
Update travis
commitfc599168c6270abbe0b2ac4ef271ac012ba0e1c6 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateTue 5 Feb 2019, 20:08 (8 years ago) parent7e3f717
5 files changed+76−49
.travis.yml+37−18 jsaddle-warp/jsaddle-warp.cabal+4 jsaddle-warp/src/Language/Javascript/JSaddle/Test.hs+13−12 jsaddle-warp/tests/DocTest.hs+20−7 travis/build.sh+2−12
.travis.yml+37−18
@@ -1,29 +1,48 @@
1−sudo: required
2−services:
3− - docker
1+language: c
2+
3+#ghc:
4+# - "8.4.4"
5+
6+sudo: false
7+
8+dist: xenial
9+#addons:
10+# apt:
11+# sources:
12+# - ppa:hvr/ghc
13+# packages:
14+# - libgirepository1.0-dev
15+# - libwebkit2gtk-4.0-dev,phantomjs
416
517cache:
618 directories:
7− - .cabal
8− - .ghc
19+ - $HOME/.cabal
20+ - $HOME/.ghc
921
10−env:
11−# - CABALVER=1.24 GHCVER=7.10.3 OSVER=xenial
12− - CABALVER=1.24 GHCVER=8.0.1 OSVER=xenial
13− - CABALVER=1.24 GHCVER=8.0.2 OSVER=xenial
14− - CABALVER=1.24 GHCVER=7.10.3 OSVER=trusty
15− - CABALVER=1.24 GHCVER=8.0.1 OSVER=trusty
16− - CABALVER=1.24 GHCVER=8.0.2 OSVER=trusty
22+matrix:
23+ include:
24+# - env: CABALVER=2.0 GHCVER=8.2.2
25+# addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2,happy-1.19.5,alex-3.1.7,libgirepository1.0-dev,libwebkit2gtk-4.0-dev,phantomjs], sources: [hvr-ghc]}}
26+ - env: CABALVER=2.2 GHCVER=8.4.4
27+ addons: {apt: {packages: [cabal-install-2.2,ghc-8.4.4,happy-1.19.5,alex-3.1.7,libgirepository1.0-dev,libwebkit2gtk-4.0-dev,phantomjs], sources: [hvr-ghc]}}
28+# - env: CABALVER=2.4 GHCVER=8.6.3
29+# addons: {apt: {packages: [cabal-install-2.4,ghc-8.6.3,happy-1.19.5,alex-3.1.7,libgirepository1.0-dev,libwebkit2gtk-4.0-dev,phantomjs], sources: [hvr-ghc]}}
30+# - env: CABALVER=head GHCVER=head
31+# addons: {apt: {packages: [cabal-install-head,ghc-head,happy-1.19.5,alex-3.1.7,libgirepository1.0-dev,libwebkit2gtk-4.0-dev,phantomjs], sources: [hvr-ghc]}}
32+ allow_failures:
33+ - env: CABALVER=head GHCVER=head
1734
1835before_install:
19− - docker build -t ghc -f travis/$OSVER.Dockerfile travis
36+ - export PATH=$HOME/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/alex/3.1.7/bin:/opt/happy/1.19.5/bin:$PATH
37+
38+install:
39+ - cabal --version
40+ - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
41+ - cabal update
2042
2143script:
22− - docker run -v `pwd`:/build ghc
23− sh -x -c "
24− apt-get install -y cabal-install-$CABALVER ghc-$GHCVER &&
25− export PATH=\$HOME/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/alex/3.1.7/bin:/opt/happy/1.19.5/bin:\$PATH &&
26− ./travis/build.sh"
44+ ./travis/build.sh
45+
2746notifications:
2847 irc:
2948 channels: "irc.freenode.net#ghcjs"
jsaddle-warp/jsaddle-warp.cabal+4
@@ -60,7 +60,9 @@ test-suite test-tool
6060 containers -any,
6161 deepseq -any,
6262 doctest >=0.10.1 && <0.17,
63+ exceptions -any,
6364 filepath >=1.4.0.0 && <1.5,
65+ foreign-store -any,
6466 ghc-prim -any,
6567 http-types -any,
6668 jsaddle -any,
@@ -70,10 +72,12 @@ test-suite test-tool
7072 ref-tf -any,
7173 primitive -any,
7274 process >=1.2.3.0 && <1.7,
75+ random -any,
7376 stm -any,
7477 text -any,
7578 time -any,
7679 transformers -any,
80+ unliftio-core -any,
7781 wai -any,
7882 wai-websockets -any,
7983 warp -any,
jsaddle-warp/src/Language/Javascript/JSaddle/Test.hs+13−12
@@ -17,21 +17,22 @@ module Language.Javascript.JSaddle.Test (
1717 , listWindowProperties
1818) where
1919
20−import Control.Applicative
2120import Prelude hiding((!!), catch)
22−import Control.Monad.Trans.Reader (runReaderT)
23−import Language.Javascript.JSaddle
24−import qualified Data.Text as T
25−import Control.Monad.IO.Class (MonadIO(..))
26−import Control.Monad (forever, forM)
27−import Control.Lens.Getter ((^.))
28−import Data.Monoid ((<>))
21+import Control.Applicative
22+import Control.Concurrent (threadDelay, forkIO, ThreadId)
2923import Control.Concurrent.MVar
3024 (tryTakeMVar, putMVar, takeMVar, newEmptyMVar, MVar)
31−import System.IO.Unsafe (unsafePerformIO)
32−import Control.Concurrent (threadDelay, forkIO, ThreadId)
25+import Control.Lens.Getter ((^.))
26+import Control.Monad (forever, forM)
27+import Control.Monad.IO.Class (MonadIO(..))
28+import Control.Monad.Trans.Reader (runReaderT)
29+import Data.Monoid ((<>))
3330import Data.Text (Text)
31+import qualified Data.Text as T
32+import Language.Javascript.JSaddle
3433import Language.Javascript.JSaddle.Warp (run)
34+import System.IO.Unsafe (unsafePerformIO)
35+import System.Timeout (timeout)
3536
3637context :: MVar JSContextRef
3738context = unsafePerformIO newEmptyMVar
@@ -52,12 +53,12 @@ startServer =
5253
5354-- >>> testJSaddle $ ((global ^. js "console" . js "log") # ["Hello"])
5455testJSaddle :: ToJSVal val => JSM val -> IO ()
55−testJSaddle f = do
56+testJSaddle f = timeout 10000000 (do
5657 startServer
5758 c <- takeMVar context
5859 runReaderT (unJSM $ (f >>= valToText >>= liftIO . putStrLn . T.unpack)
5960 `catch` \ (JSException e) -> valToText e >>= liftIO . putStrLn . T.unpack) c
60− putMVar context c
61+ putMVar context c) >>= maybe (putStrLn "testJSaddle timed out") return
6162
6263debugLog :: String -> IO ()
6364debugLog _ = return ()
jsaddle-warp/tests/DocTest.hs+20−7
@@ -11,18 +11,17 @@ import System.IO (stderr, BufferMode(..), stdout, hSetBuffering)
1111import System.FilePath ((</>))
1212import System.Exit (exitFailure, exitWith, ExitCode(..))
1313import System.Process (readProcess, system)
14−import Control.Concurrent (forkIO)
14+import Control.Concurrent
15+ (takeMVar, newEmptyMVar, forkIO, threadDelay, putMVar)
1516import Control.Monad (void)
1617import Control.Monad.IO.Class (MonadIO(..))
1718import Data.Monoid ((<>))
1819import System.Environment (getArgs)
19−import Language.Javascript.JSaddle.Run.Files (jsaddleJs)
20−import qualified Data.ByteString.Lazy.Char8 as BS (unpack)
2120import Test.WebDriver (runSession, defaultConfig, openPage, closeSession)
2221
2322main :: IO ()
2423main = do
25− putStrLn "Hello"
24+ putStrLn "Testing JSaddle"
2625 jsaddlePath <- getArgs >>= \case
2726 [arg] -> return arg
2827 _ -> do
@@ -30,14 +29,18 @@ main = do
3029 exitFailure
3130 hSetBuffering stdout LineBuffering
3231 hSetBuffering stderr LineBuffering
32+ putStrLn "Checking for phantomjs"
3333 node <- system "phantomjs --version" >>= \case
3434 ExitSuccess -> return ()
3535 e -> do
3636 putStrLn "phantomjs not found"
3737 exitWith e
38− forkIO . void $ readProcess "phantomjs" ["--webdriver=4444"] (BS.unpack jsaddleJs) >>= putStr
39− runSession defaultConfig $ do
40− openPage "http://localhost:3709"
38+ putStrLn "Starting phantomjs"
39+ forkIO . void $ readProcess "phantomjs" ["--webdriver=4444"] "" >>= putStr
40+ threadDelay 5000000
41+ putStrLn "Running Tests"
42+ done <- newEmptyMVar
43+ forkIO $ do
4144 liftIO $ doctest [
4245 "-hide-all-packages",
4346 "-package=base-" ++ VERSION_base,
@@ -61,6 +64,10 @@ main = do
6164 "-package=ref-tf-" ++ VERSION_ref_tf,
6265 "-package=deepseq-" ++ VERSION_deepseq,
6366 "-package=ghc-prim-" ++ VERSION_ghc_prim,
67+ "-package=exceptions-" ++ VERSION_exceptions,
68+ "-package=unliftio-core-" ++ VERSION_unliftio_core,
69+ "-package=random-" ++ VERSION_random,
70+ "-package=foreign-store-" ++ VERSION_foreign_store,
6471 "-i" <> "src",
6572 "-i" <> "src-ghc",
6673 "src/Language/Javascript/JSaddle/Test.hs",
@@ -83,6 +90,7 @@ main = do
8390 jsaddlePath </> "src/Language/Javascript/JSaddle/Arguments.hs",
8491 jsaddlePath </> "src/Language/Javascript/JSaddle/Classes.hs",
8592 jsaddlePath </> "src/Language/Javascript/JSaddle/Classes/Internal.hs",
93+ jsaddlePath </> "src/Language/Javascript/JSaddle/Debug.hs",
8694 jsaddlePath </> "src/Language/Javascript/JSaddle/Evaluate.hs",
8795 jsaddlePath </> "src/Language/Javascript/JSaddle/Exception.hs",
8896 jsaddlePath </> "src/Language/Javascript/JSaddle/Monad.hs",
@@ -96,4 +104,9 @@ main = do
96104 jsaddlePath </> "src/Language/Javascript/JSaddle/String.hs",
97105 jsaddlePath </> "src/Language/Javascript/JSaddle/Types.hs",
98106 jsaddlePath </> "src/Language/Javascript/JSaddle/Value.hs" ]
107+ putMVar done ()
108+ threadDelay 5000000
109+ runSession defaultConfig $ do
110+ openPage "http://127.0.0.1:3709"
111+ liftIO $ takeMVar done
99112 closeSession
travis/build.sh+2−12
@@ -6,18 +6,8 @@ GHCVER=`ghc --numeric-version`
66
77JSADDLE_WARP_VERSION=`head -n2 jsaddle-warp/jsaddle-warp.cabal | tail -n1 | sed 's/[^0-9.]//g'`
88
9−if [[ -d .cabal && -d .ghc ]]; then
10− cp -a .cabal .ghc /root
11−fi
12−
139cabal update
14−cabal new-build --constraint='Cabal>=1.24.2.0' 'jsaddle-warp:lib:jsaddle-warp' 'jsaddle-warp:test:test-tool'
10+cabal new-build 'jsaddle-warp:lib:jsaddle-warp' 'jsaddle-warp:test:test-tool'
1511cd jsaddle-warp
16−GHC_PACKAGE_PATH=/opt/ghc/$GHCVER/lib/ghc-$GHCVER/package.conf.d:~/.cabal/store/ghc-$GHCVER/package.db:./dist-newstyle/packagedb/ghc-$GHCVER jsaddle_datadir=`pwd` ../dist-newstyle/build/jsaddle-warp-$JSADDLE_WARP_VERSION/build/test-tool/test-tool ../jsaddle-warp
17−
18−# update the cache
19−rm -rf .cabal
20−cp -a /root/.cabal ./
21−rm -rf .ghc
22−cp -a /root/.ghc ./
12+GHC_PACKAGE_PATH=/opt/ghc/$GHCVER/lib/ghc-$GHCVER/package.conf.d:~/.cabal/store/ghc-$GHCVER/package.db:../dist-newstyle/packagedb/ghc-$GHCVER ../dist-newstyle/build/x86_64-linux/ghc-$GHCVER/jsaddle-warp-$JSADDLE_WARP_VERSION/t/test-tool/build/test-tool/test-tool ../jsaddle
2313