Skip to content

Commit 4c665b2

Browse files
authored
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".
1 parent 381d492 commit 4c665b2

File tree

2 files changed

+137
-1
lines changed

2 files changed

+137
-1
lines changed

.travis.yml

Lines changed: 135 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,25 @@ env:
3636
- ENABLE_NODE_BINDINGS=On
3737
- NODE="10"
3838

39+
stages:
40+
- core
41+
- optional
42+
3943
matrix:
4044
fast_finish: true
4145

4246
# We override the compiler names here to yield better ccache behavior, which uses this as key
4347
include:
4448

4549
# Debug Builds
46-
- os: linux
50+
- stage: core
51+
os: linux
4752
compiler: "format-taginfo-docs"
4853
env: NODE=10
4954
sudo: false
5055
before_install:
5156
install:
57+
- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
5258
- source $NVM_DIR/nvm.sh
5359
- nvm install $NODE
5460
- nvm use $NODE
@@ -275,7 +281,135 @@ matrix:
275281
after_success:
276282
- ./scripts/travis/publish.sh
277283

284+
- os: osx
285+
stage: optional
286+
osx_image: xcode9.2
287+
compiler: "mason-osx-release-node-latest"
288+
# we use the xcode provides clang and don't install our own
289+
env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="node"
290+
after_success:
291+
- ./scripts/travis/publish.sh
292+
293+
- os: linux
294+
sudo: false
295+
compiler: "node-latest-mason-linux-release"
296+
addons:
297+
apt:
298+
sources: ['ubuntu-toolchain-r-test']
299+
packages: ['libstdc++-4.9-dev']
300+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node"
301+
install:
302+
- pushd ${OSRM_BUILD_DIR}
303+
- |
304+
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
305+
-DENABLE_MASON=${ENABLE_MASON:-OFF} \
306+
-DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \
307+
-DENABLE_CCACHE=ON \
308+
-DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \
309+
-DENABLE_GLIBC_WORKAROUND=ON
310+
- make --jobs=${JOBS}
311+
- popd
312+
script:
313+
- npm run nodejs-tests
314+
after_success:
315+
- ./scripts/travis/publish.sh
316+
317+
- os: linux
318+
sudo: false
319+
compiler: "node-latest-mason-linux-debug"
320+
addons:
321+
apt:
322+
sources: ['ubuntu-toolchain-r-test']
323+
packages: ['libstdc++-4.9-dev']
324+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node"
325+
install:
326+
- pushd ${OSRM_BUILD_DIR}
327+
- |
328+
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
329+
-DENABLE_MASON=${ENABLE_MASON:-OFF} \
330+
-DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \
331+
-DENABLE_CCACHE=ON \
332+
-DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \
333+
-DENABLE_GLIBC_WORKAROUND=ON
334+
- make --jobs=${JOBS}
335+
- popd
336+
script:
337+
- npm run nodejs-tests
338+
after_success:
339+
- ./scripts/travis/publish.sh
340+
341+
- os: osx
342+
osx_image: xcode9.2
343+
compiler: "mason-osx-release-node-lts"
344+
# we use the xcode provides clang and don't install our own
345+
env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="--lts"
346+
after_success:
347+
- ./scripts/travis/publish.sh
348+
349+
- os: linux
350+
sudo: false
351+
compiler: "node-lts-mason-linux-release"
352+
addons:
353+
apt:
354+
sources: ['ubuntu-toolchain-r-test']
355+
packages: ['libstdc++-4.9-dev']
356+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts"
357+
install:
358+
- pushd ${OSRM_BUILD_DIR}
359+
- |
360+
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
361+
-DENABLE_MASON=${ENABLE_MASON:-OFF} \
362+
-DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \
363+
-DENABLE_CCACHE=ON \
364+
-DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \
365+
-DENABLE_GLIBC_WORKAROUND=ON
366+
- make --jobs=${JOBS}
367+
- popd
368+
script:
369+
- npm run nodejs-tests
370+
after_success:
371+
- ./scripts/travis/publish.sh
372+
373+
- os: linux
374+
sudo: false
375+
compiler: "node-lts-mason-linux-debug"
376+
addons:
377+
apt:
378+
sources: ['ubuntu-toolchain-r-test']
379+
packages: ['libstdc++-4.9-dev']
380+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts"
381+
install:
382+
- pushd ${OSRM_BUILD_DIR}
383+
- |
384+
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
385+
-DENABLE_MASON=${ENABLE_MASON:-OFF} \
386+
-DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF} \
387+
-DENABLE_CCACHE=ON \
388+
-DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \
389+
-DENABLE_GLIBC_WORKAROUND=ON
390+
- make --jobs=${JOBS}
391+
- popd
392+
script:
393+
- npm run nodejs-tests
394+
after_success:
395+
- ./scripts/travis/publish.sh
396+
397+
allow_failures:
398+
- compiler: "mason-osx-release-node-latest"
399+
env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="node"
400+
- compiler: "node-latest-mason-linux-release"
401+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node"
402+
- compiler: "node-latest-mason-linux-debug"
403+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="node"
404+
- compiler: "mason-osx-release-node-lts"
405+
env: ENABLE_MASON=ON BUILD_TYPE='Release' CUCUMBER_TIMEOUT=60000 CCOMPILER='clang' CXXCOMPILER='clang++' ENABLE_ASSERTIONS=ON ENABLE_LTO=ON NODE="--lts"
406+
- compiler: "node-lts-mason-linux-release"
407+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Release' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts"
408+
- compiler: "node-lts-mason-linux-debug"
409+
env: CLANG_VERSION='5.0.0' BUILD_TYPE='Debug' ENABLE_MASON=ON ENABLE_LTO=ON JOBS=3 NODE="--lts"
410+
278411
before_install:
412+
- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
279413
- source $NVM_DIR/nvm.sh
280414
- nvm install $NODE
281415
- nvm use $NODE

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Unreleased
22
- Changes from 5.21.0
3+
- Build:
4+
- ADDED: optionally build Node `lts` and `latest` bindings [#5347](https://github.com/Project-OSRM/osrm-backend/pull/5347)
35
- Features:
46
- ADDED: new waypoints parameter to the `route` plugin, enabling silent waypoints [#5345](https://github.com/Project-OSRM/osrm-backend/pull/5345)
57

0 commit comments

Comments
 (0)