I've been working on this branch for a while and its past time to merge it. Here is a rundown of what this does:
Sanitizers Makes our address sanitizer builds jobs more fancy. Now they build twice: once without fatal errors so that all the potential problems show up during the tests and a second time with errors fatal so that the jobs fail overall if there are errors. The idea here is to notice a failed job and then (short of debugging locally) be able to see all the errors at once (rather than fixing one-by-one blindly).
Language Moves to using language: node_js since this now works on OS X and seems just about as fast as language:generic. The advantage is it makes setup easier (sourcing .nvm is a pain and error prone).
code cleanup Reduces the # of scripts in scripts/. The idea is to reduce the amount of files that other modules need to copy when they mimic node-cpp-skel.
No more bash sourcing of scripts Avoids the need to source a script (to avoid that messing with the travis environment when set -e is inherited)
This is made possible because the ENV is now written to a specific file to source that is just ENV settings
Fancy Environment variables Now this ENV has a bunch of cool variables to hook into to make specific jobs, like coverage or sanitizer jobs, easier to set up.
node-pre-gyp toolset support Add the custom {toolset} option to the node-pre-gyp versioning scheme in package.json. This does nothing by default until you pass the --toolset=<something> flag. It is there to prepare for passing --toolset=asan to be able to publish builds instrumented with address sanitizer and then be able to install them. More on this in upcoming PRs
I've been working on this branch for a while and its past time to merge it. Here is a rundown of what this does:
language: node_js
since this now works on OS X and seems just about as fast aslanguage:generic
. The advantage is it makes setup easier (sourcing .nvm is a pain and error prone).scripts/
. The idea is to reduce the amount of files that other modules need to copy when they mimic node-cpp-skel.set -e
is inherited){toolset}
option to the node-pre-gyp versioning scheme inpackage.json
. This does nothing by default until you pass the--toolset=<something>
flag. It is there to prepare for passing--toolset=asan
to be able to publish builds instrumented with address sanitizer and then be able to install them. More on this in upcoming PRs/cc @mapsam @GretaCB