summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorcclauss <cclauss@me.com>2019-08-28 08:27:41 +0200
committerRich Trott <rtrott@gmail.com>2019-09-01 10:36:06 -0700
commitc602b0a4e5df8de90299637aaef65c4cedae30ac (patch)
tree387e0be9d21e46f5faa12115d5467b708b357493 /.travis.yml
parent89aea1514b3b44d4b60c6c556aa70e9ffed46391 (diff)
downloadandroid-node-v8-c602b0a4e5df8de90299637aaef65c4cedae30ac.tar.gz
android-node-v8-c602b0a4e5df8de90299637aaef65c4cedae30ac.tar.bz2
android-node-v8-c602b0a4e5df8de90299637aaef65c4cedae30ac.zip
build: add full Python 3 tests to Travis CI
PR-URL: https://github.com/nodejs/node/pull/29360 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: David Carlier <devnexen@gmail.com>
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml137
1 files changed, 92 insertions, 45 deletions
diff --git a/.travis.yml b/.travis.yml
index 88f0c6cdbd..e25aba9f3d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,110 +8,157 @@ os: linux
language: cpp
env:
global:
- - PYTHON_VERSION="2.7.15"
+ - PYTHON2_VERSION="2.7.15"
+ - PYTHON3_VERSION="3.6.7" # "3.7.1" after #29326 is fixed
+ - PYTHON2_CACHE=$HOME/.ccache/py${PYTHON2_VERSION}
+ - PYTHON3_CACHE=$HOME/.ccache/py${PYTHON3_VERSION}
+cache:
+ ccache: true
+ directories:
+ - ${PYTHON2_CACHE}
+ - ${PYTHON3_CACHE}
jobs:
include:
- stage: "Compile"
- name: "Compile V8"
- cache: ccache
+ name: "Compile V8 (py2)"
addons:
apt:
+ update: true
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
install: *ccache-setup-steps
script:
- - pyenv global ${PYTHON_VERSION}
+ - pyenv global ${PYTHON2_VERSION}
- ./configure
- make -j2 -C out V=1 v8
- - name: "Compile Node.js"
- cache: ccache
+ - name: "Compile V8 (py3)"
addons:
apt:
+ update: true
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
install: *ccache-setup-steps
script:
- - pyenv global ${PYTHON_VERSION}
+ - pyenv global ${PYTHON3_VERSION}
+ # - ./configure # workaround pending #25878
+ - python3 configure.py
+ - make -j2 -C out V=1 v8
+
+ - name: "Compile Node.js (py2)"
+ addons:
+ apt:
+ update: true
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - g++-6
+ install: *ccache-setup-steps
+ script:
+ - pyenv global ${PYTHON2_VERSION}
- ./configure
- make -j2 V=1
- - cp out/Release/node /home/travis/.ccache
- - cp out/Release/cctest /home/travis/.ccache
+ - cp out/Release/node ${PYTHON2_CACHE}
+ - cp out/Release/cctest ${PYTHON2_CACHE}
+
+ - name: "Compile Node.js (py3)"
+ addons:
+ apt:
+ update: true
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - g++-6
+ install: *ccache-setup-steps
+ script:
+ - pyenv global ${PYTHON3_VERSION}
+ # - ./configure # workaround pending #25878
+ - python3 configure.py
+ - make -j2 V=1
+ - cp out/Release/node ${PYTHON3_CACHE}
+ - cp out/Release/cctest ${PYTHON3_CACHE}
- stage: "Tests"
- name: "Test JS Suites"
- cache: ccache
+ name: "Test JS Suites (py2)"
+ install:
+ - mkdir -p out/Release
+ - cp ${PYTHON2_CACHE}/node out/Release/node
+ script:
+ - pyenv global ${PYTHON2_VERSION}
+ - python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare default
+
+ - name: "Test JS Suites (py3)"
install:
- mkdir -p out/Release
- - cp /home/travis/.ccache/node out/Release/node
+ - cp ${PYTHON3_CACHE}/node out/Release/node
script:
- - pyenv global ${PYTHON_VERSION}
+ - pyenv global ${PYTHON3_VERSION}
- python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare default
- - name: "Test C++ Suites"
- cache: ccache
+ - name: "Test C++ Suites (py2)"
install:
- export CCACHE_NOSTATS=1
- export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
- export CC='ccache gcc'
- export CXX='ccache g++'
- mkdir -p out/Release
- - cp /home/travis/.ccache/node out/Release/node
+ - cp ${PYTHON2_CACHE}/node out/Release/node
- ln -fs out/Release/node node
- - cp /home/travis/.ccache/cctest out/Release/cctest
+ - cp ${PYTHON2_CACHE}/cctest out/Release/cctest
- touch config.gypi
script:
- - pyenv global ${PYTHON_VERSION}
+ - pyenv global ${PYTHON2_VERSION}
- out/Release/cctest
- make -j1 V=1 test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
- python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare addons js-native-api node-api
- - name: "Linter"
- language: node_js
- node_js: "node"
+ - name: "Test C++ Suites (py3)"
install:
- - pyenv global ${PYTHON_VERSION}
- - make lint-py-build || true
+ - export CCACHE_NOSTATS=1
+ - export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
+ - export CC='ccache gcc'
+ - export CXX='ccache g++'
+ - mkdir -p out/Release
+ - cp ${PYTHON3_CACHE}/node out/Release/node
+ - ln -fs out/Release/node node
+ - cp ${PYTHON3_CACHE}/cctest out/Release/cctest
+ - touch config.gypi
script:
- - NODE=$(which node) make lint lint-py
+ - pyenv global ${PYTHON3_VERSION}
+ - out/Release/cctest
+ - make -j1 V=1 test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
+ - python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare addons js-native-api node-api
- - name: "First commit message adheres to guidelines at <a href=\"https://goo.gl/p2fr5Q\">https://goo.gl/p2fr5Q</a>"
- if: type = pull_request
+ - name: "Linter (py2)"
language: node_js
node_js: "node"
+ install:
+ - pyenv global ${PYTHON2_VERSION}
+ - make lint-py-build || true
script:
- - if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
- bash -x tools/lint-pr-commit-message.sh ${TRAVIS_PULL_REQUEST};
- fi
+ - NODE=$(which node) make lint lint-py
- - name: "Python 3 is EXPERIMENTAL (Py36)"
+ - name: "Linter (py3)"
language: node_js
node_js: "node"
install:
- - pyenv global 3.6.7
- - python3.6 -m pip install --upgrade pip
- - make lint-py-build
+ - pyenv global ${PYTHON3_VERSION}
+ - make lint-py-build || true
script:
- NODE=$(which node) make lint lint-py
- - python3.6 ./configure.py
- - NODE=$(which node) make test
- - name: "Python 3 is EXPERIMENTAL (Py37)"
+ - name: "First commit message adheres to guidelines at <a href=\"https://goo.gl/p2fr5Q\">https://goo.gl/p2fr5Q</a>"
+ if: type = pull_request
language: node_js
node_js: "node"
- install:
- - pyenv global 3.7.1
- - python3.7 -m pip install --upgrade pip
- - make lint-py-build
script:
- - NODE=$(which node) make lint lint-py
- - python3.7 ./configure.py
- - NODE=$(which node) make test
+ - if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
+ bash -x tools/lint-pr-commit-message.sh ${TRAVIS_PULL_REQUEST};
+ fi
allow_failures:
- - name: "Python 3 is EXPERIMENTAL (Py36)"
- - name: "Python 3 is EXPERIMENTAL (Py37)"
+ - name: "Test C++ Suites (py3)" # allow_failures pending #29246