test: optimize total Travis run time · nodejs/node@8cf3af1 (original) (raw)
``
1
`+
x-ccache-setup-steps: &ccache-setup-steps
`
``
2
`+
- export CCACHE_NOSTATS=1
`
``
3
`+
- export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
`
``
4
`+
- export CC='ccache gcc-6'
`
``
5
`+
- export CXX='ccache g++-6'
`
``
6
+
1
7
`os: linux
`
2
8
`dist: xenial
`
``
9
`+
language: cpp
`
3
10
`jobs:
`
4
11
`include:
`
5
12
` - stage: "Lint and Compile"
`
`@@ -21,49 +28,55 @@ jobs:
`
21
28
` - NODE=$(which node) make lint lint-py
`
22
29
``
23
30
` - name: "Compile V8"
`
24
``
`-
language: cpp
`
25
31
`cache: ccache
`
26
32
`addons:
`
27
33
`apt:
`
28
34
`sources:
`
29
35
` - ubuntu-toolchain-r-test
`
30
36
`packages:
`
31
37
` - g++-6
`
32
``
`-
install:
`
33
``
`-
- CC='ccache gcc-6' CXX='ccache g++-6' ./configure
`
``
38
`+
install: *ccache-setup-steps
`
34
39
`script:
`
35
``
`-
- CC='ccache gcc-6' CXX='ccache g++-6' make -j2 -C out V=1 v8
`
``
40
`+
- ./configure
`
``
41
`+
- make -j2 -C out V=1 v8
`
36
42
``
37
43
` - name: "Compile Node.js"
`
38
``
`-
language: cpp
`
39
44
`cache: ccache
`
40
45
`addons:
`
41
46
`apt:
`
42
47
`sources:
`
43
48
` - ubuntu-toolchain-r-test
`
44
49
`packages:
`
45
50
` - g++-6
`
46
``
`-
install:
`
47
``
`-
- CC='ccache gcc-6' CXX='ccache g++-6' ./configure
`
``
51
`+
install: *ccache-setup-steps
`
48
52
`script:
`
49
``
`-
- CC='ccache gcc-6' CXX='ccache g++-6' make -j2 V=1
`
``
53
`+
- ./configure
`
``
54
`+
- make -j2 V=1
`
``
55
`+
- cp out/Release/node /home/travis/.ccache
`
``
56
`+
- cp out/Release/cctest /home/travis/.ccache
`
50
57
``
51
58
` - stage: "Tests"
`
52
``
`-
name: "Test Suite"
`
53
``
`-
language: cpp
`
``
59
`+
name: "Test JS Suites"
`
54
60
`cache: ccache
`
55
``
`-
addons:
`
56
``
`-
apt:
`
57
``
`-
sources:
`
58
``
`-
- ubuntu-toolchain-r-test
`
59
``
`-
packages:
`
60
``
`-
- g++-6
`
61
61
`install:
`
62
``
`-
- export CC='ccache gcc-6' CXX='ccache g++-6' JOBS=2
`
63
``
`-
- ./configure
`
64
``
`-
We already have a compile log in the above job
`
65
``
`-
- make -j2 > /dev/null
`
66
``
`-
- make -j1 build-addons build-js-native-api-tests build-node-api-tests > /dev/null
`
``
62
`+
- mkdir -p out/Release
`
``
63
`+
- cp /home/travis/.ccache/node out/Release/node
`
``
64
`+
script:
`
``
65
`+
- python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare default
`
``
66
+
``
67
`+
- name: "Test C++ Suites"
`
``
68
`+
cache: ccache
`
``
69
`+
install:
`
``
70
`+
- export CCACHE_NOSTATS=1
`
``
71
`+
- export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
`
``
72
`+
- export CC='ccache gcc'
`
``
73
`+
- export CXX='ccache g++'
`
``
74
`+
- mkdir -p out/Release
`
``
75
`+
- cp /home/travis/.ccache/node out/Release/node
`
``
76
`+
- ln -fs out/Release/node node
`
``
77
`+
- cp /home/travis/.ccache/cctest out/Release/cctest
`
``
78
`+
- touch config.gypi
`
67
79
`script:
`
68
``
`-
- set -o pipefail
`
69
``
`-
- JOBS=2 FLAKY_TESTS=dontcare make -s -j1 V= test-ci | grep -F -e "---" -e "..." -v
`
``
80
`+
- out/Release/cctest
`
``
81
`+
- make -j1 V=1 test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
`
``
82
`+
- python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare addons js-native-api node-api
`