From c602b0a4e5df8de90299637aaef65c4cedae30ac Mon Sep 17 00:00:00 2001 From: cclauss Date: Wed, 28 Aug 2019 08:27:41 +0200 Subject: build: add full Python 3 tests to Travis CI PR-URL: https://github.com/nodejs/node/pull/29360 Reviewed-By: Richard Lau Reviewed-By: Ben Noordhuis Reviewed-By: David Carlier --- .travis.yml | 137 ++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 92 insertions(+), 45 deletions(-) (limited to '.travis.yml') 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 https://goo.gl/p2fr5Q" - 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 https://goo.gl/p2fr5Q" + 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 -- cgit v1.2.3