Makefile: fix recursive make of compiled impls.
[jackhill/mal.git] / .travis.yml
dissimilarity index 93%
index d4c2476..0ef7022 100644 (file)
@@ -1,96 +1,74 @@
-sudo: required
-
-language: node
-
-services:
-  - docker
-
-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
+
+language: node
+
+services:
+  - docker
+
+# matrix layout based on:
+# https://github.com/libressl-portable/portable/blob/9e090286b55def5ca2c0cc375c65023a70d8796e/.travis.yml
+
+matrix:
+  include:
+    - env: IMPL=awk
+    - env: IMPL=bash
+    - env: IMPL=c
+    - env: IMPL=cpp
+    - env: IMPL=coffee
+    - env: IMPL=cs
+    - env: IMPL=clojure
+    - env: IMPL=crystal
+    - env: IMPL=elixir
+    - env: IMPL=erlang NO_PERF=1  # perf runs out of memory
+    - env: IMPL=es6
+    - env: IMPL=factor
+    - env: IMPL=forth
+    - env: IMPL=fsharp
+    - env: IMPL=go
+    - env: IMPL=groovy
+    - env: IMPL=guile
+    - env: IMPL=haskell
+    - env: IMPL=java
+    - env: IMPL=js
+    - env: IMPL=julia
+    - env: IMPL=kotlin
+    - env: IMPL=lua
+    - env: IMPL=make
+    - env: IMPL=mal BUILD_IMPL=js NO_PERF=1
+    #- env: IMPL=matlab  # licensed (until port to Octave)
+    - env: IMPL=miniMAL BUILD_IMPL=js
+    - env: IMPL=nim
+    - env: IMPL=ocaml
+    - env: IMPL=perl
+    - env: IMPL=php
+    - env: IMPL=ps
+    - env: IMPL=python
+    - env: IMPL=r
+    - env: IMPL=racket
+    - env: IMPL=rpython
+    - env: IMPL=ruby
+    - env: IMPL=rust
+    - env: IMPL=scala
+    - env: IMPL=swift NO_DOCKER=1
+      os: osx
+      osx_image: xcode7
+    - env: IMPL=tcl
+    - env: IMPL=vimscript NO_PERF=1  # /dev/stdout not writable
+    - env: IMPL=vb
+
+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