Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: store cache on timed out builds on Travis #30469

Merged
merged 2 commits into from
Nov 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 8 additions & 23 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
x-ccache-setup-steps: &ccache-setup-steps
- export CCACHE_NOSTATS=1
- export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
- export CC='ccache gcc-6'
- export CXX='ccache g++-6'

os: linux
language: cpp
env:
Expand All @@ -13,33 +7,24 @@ env:
jobs:
include:
- stage: "Compile"
name: "Compile V8"
name: "Compile Node.js"
cache: ccache
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
install: *ccache-setup-steps
script:
- pyenv global ${PYTHON_VERSION}
- ./configure
- make -j2 -C out V=1 v8

- name: "Compile Node.js"
cache: ccache
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
install: *ccache-setup-steps
install:
- export CCACHE_NOSTATS=1
- export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
- export CC='ccache gcc-6'
- export CXX='ccache g++-6'
script:
- pyenv global ${PYTHON_VERSION}
- ./configure
- make -j2 V=1
- timeout --preserve-status 45m make -j2 V=1
before_cache:
- cp out/Release/node /home/travis/.ccache
- cp out/Release/cctest /home/travis/.ccache

Expand Down
7 changes: 7 additions & 0 deletions COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,13 @@ All pull requests must pass continuous integration tests. Code changes must pass
on [project CI server](https://ci.nodejs.org/). Pull requests that only change
documentation and comments can use Travis CI results.

Travis CI jobs have a fixed running time limit that building Node.js sometimes
exceeds. If the `Compile Node.js` Travis CI job has timed out it will fail after
around 45 minutes. The exit code will be 143, indicating that a `SIGTERM` signal
terminated the `make` command. When this happens, restart the timed out job. It
will reuse built artifacts from the previous timed-out run, and thus take less
time to complete.

Do not land any pull requests without passing (green or yellow) CI runs. If
there are CI failures unrelated to the change in the pull request, try "Resume
Build". It is in the left navigation of the relevant `node-test-pull-request`
Expand Down