Implement step 8
[jackhill/mal.git] / .travis.yml
dissimilarity index 89%
index a712022..01217c5 100644 (file)
@@ -1,99 +1,69 @@
-sudo: required
-
-language: node
-
-services:
-  - docker
-
-# matrix layout based on:
-# https://github.com/libressl-portable/portable/blob/9e090286b55def5ca2c0cc375c65023a70d8796e/.travis.yml
-
-matrix:
-  include:
-    - env: IMPL=awk
-      os: linux
-    - env: IMPL=bash
-      os: linux
-    - env: IMPL=c
-      os: linux
-    - env: IMPL=cpp
-      os: linux
-    - env: IMPL=coffee
-      os: linux
-    - env: IMPL=cs
-      os: linux
-    - env: IMPL=clojure
-      os: linux
-    - env: IMPL=crystal
-      os: linux
-    - env: IMPL=elixir
-      os: linux
-    - env: IMPL=erlang
-      os: linux
-    - env: IMPL=es6
-      os: linux
-    - env: IMPL=factor
-      os: linux
-    - env: IMPL=forth
-      os: linux
-    - env: IMPL=fsharp
-      os: linux
-    - env: IMPL=go
-      os: linux
-    - env: IMPL=groovy
-      os: linux
-    - env: IMPL=guile
-      os: linux
-    - env: IMPL=haskell
-      os: linux
-    - env: IMPL=java
-      os: linux
-    - env: IMPL=js
-      os: linux
-    - env: IMPL=julia
-      os: linux
-    - env: IMPL=lua
-      os: linux
-    - env: IMPL=make
-      os: linux
-    - env: IMPL=mal BUILD_IMPL=js
-      os: linux
-    #- env: IMPL=matlab  # licensed (until port to Octave)
-    #  os: linux
-    #- env: IMPL=miniMAL  # repl/string slice bug
-    #  os: linux
-    - env: IMPL=nim
-      os: linux
-    - env: IMPL=ocaml
-      os: linux
-    - env: IMPL=perl
-      os: linux
-    - env: IMPL=php
-      os: linux
-    - env: IMPL=ps
-      os: linux
-    - env: IMPL=python
-      os: linux
-    - env: IMPL=r
-      os: linux
-    - env: IMPL=racket
-      os: linux
-    - env: IMPL=rpython
-      os: linux
-    - env: IMPL=ruby
-      os: linux
-    - env: IMPL=rust
-      os: linux
-    - env: IMPL=scala
-      os: linux
-    - env: IMPL=swift
-      os: osx
-      osx_image: xcode7
-    - env: IMPL=vb
-      os: linux
-
-script:
-  - ./.travis_build.sh
-  - ./.travis_test.sh
-  - cat test.out
-  #- cat perf.out
+sudo: required
+
+# matrix layout based on:
+# https://github.com/libressl-portable/portable/blob/9e090286b55def5ca2c0cc375c65023a70d8796e/.travis.yml
+
+matrix:
+  include:
+    - {env: IMPL=awk,       services: [docker]}
+    - {env: IMPL=bash,      services: [docker]}
+    - {env: IMPL=c,         services: [docker]}
+    - {env: IMPL=cpp,       services: [docker]}
+    - {env: IMPL=coffee,    services: [docker]}
+    - {env: IMPL=cs,        services: [docker]}
+    - {env: IMPL=clojure,   services: [docker]}
+    - {env: IMPL=crystal,   services: [docker]}
+    - {env: IMPL=d,         services: [docker]}
+    - {env: IMPL=elixir,    services: [docker]}
+    - {env: IMPL=erlang NO_PERF=1, services: [docker]} # perf runs out of memory
+    - {env: IMPL=es6,       services: [docker]}
+    - {env: IMPL=factor,    services: [docker]}
+    - {env: IMPL=forth,     services: [docker]}
+    - {env: IMPL=fsharp,    services: [docker]}
+    - {env: IMPL=go,        services: [docker]}
+    - {env: IMPL=groovy,    services: [docker]}
+    - {env: IMPL=guile,     services: [docker]}
+    - {env: IMPL=haskell,   services: [docker]}
+    - {env: IMPL=haxe,      services: [docker]}
+    - {env: IMPL=java,      services: [docker]}
+    - {env: IMPL=js,        services: [docker]}
+    - {env: IMPL=julia,     services: [docker]}
+    - {env: IMPL=kotlin,    services: [docker]}
+    - {env: IMPL=lua,       services: [docker]}
+    - {env: IMPL=make,      services: [docker]}
+    - {env: IMPL=mal BUILD_IMPL=js NO_PERF=1, services: [docker]}
+    - {env: IMPL=matlab, services: [docker]} # Uses Octave
+    - {env: IMPL=miniMAL BUILD_IMPL=js, services: [docker]}
+    - {env: IMPL=nim,       services: [docker]}
+    - {env: IMPL=ocaml,     services: [docker]}
+    - {env: IMPL=perl,      services: [docker]}
+    - {env: IMPL=php,       services: [docker]}
+    - {env: IMPL=ps,        services: [docker]}
+    - {env: IMPL=python,    services: [docker]}
+    - {env: IMPL=r,         services: [docker]}
+    - {env: IMPL=racket,    services: [docker]}
+    - {env: IMPL=rpython,   services: [docker]}
+    - {env: IMPL=ruby,      services: [docker]}
+    - {env: IMPL=rust,      services: [docker]}
+    - {env: IMPL=scala,     services: [docker]}
+    - {env: IMPL=swift NO_DOCKER=1, os: osx, osx_image: xcode7}
+    - {env: IMPL=tcl,       services: [docker]}
+    - {env: IMPL=vb,        services: [docker]}
+    - {env: IMPL=vimscript, services: [docker]}
+
+script:
+  # Build
+  - ./.travis_build.sh
+
+  # Regular tests
+  - ./.travis_test.sh test ${IMPL}
+  - cat test.err || true
+
+  # NOTE: use self-host-test branch
+  # Self-hosted tests
+  #- ./.travis_test.sh test mal ${IMPL}
+  #- cat test.err || true; rm -f test.err
+
+  # Performance tests
+  - if [ -z "${NO_PERF}" ]; then ./.travis_test.sh perf ${IMPL}; fi
+  - cat perf.err || true