Next generation Node.js build

Due to various issues with the --build-v8-with-gn build, we are going to transition to a purely GN-based solution. This will become the default workflow.


Follow the instructions at the node-ci repository to check out source.

Test changes to V8

V8 is set up as a DEPS dependency of node-ci. You may want to apply changes to V8 for testing or to reproduce failures. To do so, add your main V8 checkout as remote:

cd v8
git remote add v8 <your-v8-dir>/.git
git fetch v8
git checkout v8/<your-branch>
cd ..

Remember to run gclient hooks before compiling.

gclient runhooks
JOBS=4 make test

Make changes to Node.js

Node.js is also set up as a DEPS dependency of node-ci. You may want to apply changes to Node.js to fix breakages that V8 changes may cause. V8 tests against a fork of Node.js. You need a GitHub account to make changes to that fork.

Get the Node sources

Fork V8’s Node.js repository on GitHub (click the fork button) unless you already did previously.

Add your both your fork and V8’s fork as remotes to the existing checkout:

git remote add v8
git remote add <your-user-name><your-user-name>/node
git fetch
git checkout -b make-changes

Make your changes to the Node.js checkout, and commit them. Then push the changes to GitHub and create a pull request.

git push <your-user-name> make-changes

Once the pull request has been merged to V8’s fork of Node.js, you need to update node-ci’s DEPS file, and create a CL.

git checkout -b update-deps
gclient setdep --var=node_revision=`(cd node && git rev-parse make-changes)`
git add DEPS
git commit -m 'Update Node'
git cl upload