From 4c665b24d9de109c6939aaf45dfde9a462d2273f Mon Sep 17 00:00:00 2001 From: Daniel Patterson Date: Wed, 30 Jan 2019 12:17:04 -0800 Subject: [PATCH] Add optional builds for `lts` and `node` version aliases. This will give us a heads up when new Node (#5347) versions break bindings, and might automagically get us support for new versions if it "just works". --- .travis.yml | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++- CHANGELOG.md | 2 + 2 files changed, 137 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2c74ee996..90a450195 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,6 +36,10 @@ env: - ENABLE_NODE_BINDINGS=On - NODE="10" +stages: + - core + - optional + matrix: fast_finish: true @@ -43,12 +47,14 @@ matrix: include: # Debug Builds - - os: linux + - stage: core + os: linux compiler: "format-taginfo-docs" env: NODE=10 sudo: false before_install: install: + - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash - source $NVM_DIR/nvm.sh - nvm install $NODE - nvm use $NODE @@ -275,7 +281,135 @@ matrix: after_success: - ./scripts/travis/publish.sh + - os: osx + stage: optional + osx_image: xcode9.2 + compiler: "mason-osx-release-node-latest" + # we use the xcode provides clang and don't install our own + env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="node" + after_success: + - ./scripts/travis/publish.sh + + - os: linux + sudo: false + compiler: "node-latest-mason-linux-release" + addons: + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: ['libstdc++-4.9-dev'] + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node" + install: + - pushd ${OSRM_BUILD_DIR} + - | + cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DENABLE_MASON=${ENABLE_MASON:-OFF} \ + -DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \ + -DENABLE_CCACHE=ON \ + -DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \ + -DENABLE_GLIBC_WORKAROUND=ON + - make --jobs=${JOBS} + - popd + script: + - npm run nodejs-tests + after_success: + - ./scripts/travis/publish.sh + + - os: linux + sudo: false + compiler: "node-latest-mason-linux-debug" + addons: + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: ['libstdc++-4.9-dev'] + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node" + install: + - pushd ${OSRM_BUILD_DIR} + - | + cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DENABLE_MASON=${ENABLE_MASON:-OFF} \ + -DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \ + -DENABLE_CCACHE=ON \ + -DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \ + -DENABLE_GLIBC_WORKAROUND=ON + - make --jobs=${JOBS} + - popd + script: + - npm run nodejs-tests + after_success: + - ./scripts/travis/publish.sh + + - os: osx + osx_image: xcode9.2 + compiler: "mason-osx-release-node-lts" + # we use the xcode provides clang and don't install our own + env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="--lts" + after_success: + - ./scripts/travis/publish.sh + + - os: linux + sudo: false + compiler: "node-lts-mason-linux-release" + addons: + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: ['libstdc++-4.9-dev'] + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts" + install: + - pushd ${OSRM_BUILD_DIR} + - | + cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DENABLE_MASON=${ENABLE_MASON:-OFF} \ + -DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \ + -DENABLE_CCACHE=ON \ + -DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \ + -DENABLE_GLIBC_WORKAROUND=ON + - make --jobs=${JOBS} + - popd + script: + - npm run nodejs-tests + after_success: + - ./scripts/travis/publish.sh + + - os: linux + sudo: false + compiler: "node-lts-mason-linux-debug" + addons: + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: ['libstdc++-4.9-dev'] + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts" + install: + - pushd ${OSRM_BUILD_DIR} + - | + cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DENABLE_MASON=${ENABLE_MASON:-OFF} \ + -DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \ + -DENABLE_CCACHE=ON \ + -DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \ + -DENABLE_GLIBC_WORKAROUND=ON + - make --jobs=${JOBS} + - popd + script: + - npm run nodejs-tests + after_success: + - ./scripts/travis/publish.sh + + allow_failures: + - compiler: "mason-osx-release-node-latest" + env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="node" + - compiler: "node-latest-mason-linux-release" + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node" + - compiler: "node-latest-mason-linux-debug" + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node" + - compiler: "mason-osx-release-node-lts" + env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="--lts" + - compiler: "node-lts-mason-linux-release" + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts" + - compiler: "node-lts-mason-linux-debug" + env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts" + before_install: + - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash - source $NVM_DIR/nvm.sh - nvm install $NODE - nvm use $NODE diff --git a/CHANGELOG.md b/CHANGELOG.md index d51ad2837..27c46d53a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Unreleased - Changes from 5.21.0 + - Build: + - ADDED: optionally build Node `lts` and `latest` bindings [#5347](https://github.com/Project-OSRM/osrm-backend/pull/5347) - Features: - ADDED: new waypoints parameter to the `route` plugin, enabling silent waypoints [#5345](https://github.com/Project-OSRM/osrm-backend/pull/5345)