diff --git a/.travis.yml b/.travis.yml index aa660d2a0c..869ecc6b89 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,7 @@ before_script: - wait-on tcp:9200 node_js: + - '10' - '9' - '8' - '6' @@ -34,6 +35,9 @@ jobs: ########################################### # Disable Async Hooks + - + node_js: '10' + env: ELASTIC_APM_ASYNC_HOOKS=0 - node_js: '9' env: ELASTIC_APM_ASYNC_HOOKS=0 @@ -48,10 +52,12 @@ jobs: # Commit Messages - + node_js: 'lts/*' script: commitlint-travis # Coverage - + node_js: 'lts/*' script: - npm run coverage - ./node_modules/.bin/nyc report --reporter=lcov > coverage.lcov @@ -62,6 +68,24 @@ jobs: # DEPENDENCY STAGE # ########################################### + # Node.js 10 + - stage: dependencies + node_js: '10' + env: TAV=generic-pool,mysql,redis,koa-router,handlebars,mongodb-core + script: 'if [[ "$TRAVIS_EVENT_TYPE" == "cron" || ("$TRAVIS_EVENT_TYPE" == "pull_request" && "$TRAVIS_BRANCH" != greenkeeper/*) ]]; then tav --quiet; fi' + - + node_js: '10' + env: TAV=ioredis,pg + script: 'if [[ "$TRAVIS_EVENT_TYPE" == "cron" || ("$TRAVIS_EVENT_TYPE" == "pull_request" && "$TRAVIS_BRANCH" != greenkeeper/*) ]]; then tav --quiet; fi' + - + node_js: '10' + env: TAV=bluebird + script: 'if [[ "$TRAVIS_EVENT_TYPE" == "cron" || ("$TRAVIS_EVENT_TYPE" == "pull_request" && "$TRAVIS_BRANCH" != greenkeeper/*) ]]; then tav --quiet; fi' + - + node_js: '10' + env: TAV=knex,ws,graphql,express-graphql,elasticsearch,hapi,express + script: 'if [[ "$TRAVIS_EVENT_TYPE" == "cron" || ("$TRAVIS_EVENT_TYPE" == "pull_request" && "$TRAVIS_BRANCH" != greenkeeper/*) ]]; then tav --quiet; fi' + # Node.js 9 - stage: dependencies node_js: '9' diff --git a/docs/compatibility.asciidoc b/docs/compatibility.asciidoc index d65c44ec05..578619c270 100644 --- a/docs/compatibility.asciidoc +++ b/docs/compatibility.asciidoc @@ -15,8 +15,9 @@ image::https://raw.githubusercontent.com/nodejs/Release/master/schedule.png[] Some versions of Node.js contain bugs or issues that limit our ability to instrument them correctly. The following versions of Node.js are known to not be fully instrumented: -- v8.0.x - Recommended solution: Upgrade to v8.2.0 or higher to get full support +- v10.x - Async/Await in Node.js 10 is currently buggy and can therefore not be supported (https://github.com/nodejs/node/issues/20516:[nodejs/node#20516]) - v8.1.x - Recommended solution: Upgrade to v8.2.0 or higher to get full support +- v8.0.x - Recommended solution: Upgrade to v8.2.0 or higher to get full support NOTE: Support for Node.js 8.2.0 and above is experimental as it makes use of the experimental core API https://nodejs.org/api/async_hooks.html[Async Hooks]. If you experience any issues related to using Async Hooks, diff --git a/test/.jenkins_nodejs.yml b/test/.jenkins_nodejs.yml index 3991abffe5..68ec764a40 100644 --- a/test/.jenkins_nodejs.yml +++ b/test/.jenkins_nodejs.yml @@ -1,4 +1,5 @@ NODEJS_VERSION: + - "10" - "9" - "8" - "6" diff --git a/test/.jenkins_tav_nodejs.yml b/test/.jenkins_tav_nodejs.yml index 3991abffe5..68ec764a40 100644 --- a/test/.jenkins_tav_nodejs.yml +++ b/test/.jenkins_tav_nodejs.yml @@ -1,4 +1,5 @@ NODEJS_VERSION: + - "10" - "9" - "8" - "6" diff --git a/test/instrumentation/modules/hapi.js b/test/instrumentation/modules/hapi.js index ed7010f6fb..be0baddd02 100644 --- a/test/instrumentation/modules/hapi.js +++ b/test/instrumentation/modules/hapi.js @@ -13,6 +13,9 @@ var semver = require('semver') // hapi 17+ requires Node.js 8.9.0 or higher if (semver.lt(process.version, '8.9.0') && semver.gte(pkg.version, '17.0.0')) process.exit() +// hapi does not work on Node.js 10 because of https://github.com/nodejs/node/issues/20516 +if (semver.gte(process.version, '10.0.0')) process.exit() + var http = require('http') var Hapi = require('hapi')