1- ---
1+ version : 2.1
2+
23release_tags : &release_tags
34 tags :
45 only : /^v\d+(\.\d+){2}(-.*)?$/
56
6- test_env : &test_env
7- OPENCENSUS_MONGODB_TESTS : 1
8- OPENCENSUS_REDIS_TESTS : 1
9-
10- # "Include" for unit tests definition.
11- unit_tests : &unit_tests
12- steps :
13- - checkout
14- - run :
15- name : Install modules and dependencies.
16- command : npm install
17- - run :
18- name : Check code style and linting
19- command : npm run check
20- - run :
21- name : Ensure code compiles to JS.
22- command : npm run compile
23- - run :
24- name : Run unit tests.
25- command : npm run test
26- - run :
27- name : Submit coverage data to codecov.
28- command : npm run codecov
29- when : always
30-
31- mongo_service : &mongo_service
32- image : mongo
33- redis_service : &redis_service
34- image : redis
35-
36- version : 2.0
377workflows :
388 version : 2
399 tests :
4010 jobs :
41- - node8 :
42- filters : *release_tags
43- - node10 :
44- filters : *release_tags
45- - node11 :
11+ # Separate node8 from others to ignore any packages that no longer
12+ # support node8
13+ - unit_tests :
14+ name : node8
4615 filters : *release_tags
47- - node12 :
16+ node_version : 8
17+ npm_script_extra_args : --ignore @opencensus/exporter-stackdriver
18+ - unit_tests :
19+ name : node<< matrix.node_version >>
4820 filters : *release_tags
21+ matrix :
22+ parameters :
23+ node_version : [10, 11, 12]
4924 - publish_npm :
5025 requires :
5126 - node8
@@ -58,38 +33,44 @@ workflows:
5833 << : *release_tags
5934
6035jobs :
61- node8 :
36+ unit_tests :
6237 docker :
63- - image : node:8
64- user : node
65- environment : *test_env
66- - *mongo_service
67- - *redis_service
68- << : *unit_tests
69- node10 :
70- docker :
71- - image : node:10
38+ - image : node:<< parameters.node_version >>
7239 user : node
73- environment : *test_env
74- - *mongo_service
75- - *redis_service
76- << : *unit_tests
77- node11 :
78- docker :
79- - image : node:11
80- user : node
81- environment : *test_env
82- - *mongo_service
83- - *redis_service
84- << : *unit_tests
85- node12 :
86- docker :
87- - image : node:12
88- user : node
89- environment : *test_env
90- - *mongo_service
91- - *redis_service
92- << : *unit_tests
40+ environment :
41+ OPENCENSUS_MONGODB_TESTS : 1
42+ OPENCENSUS_REDIS_TESTS : 1
43+ - mongo_service :
44+ image : mongo
45+ - redis_service :
46+ image : redis
47+ parameters :
48+ node_version :
49+ description : The node version to run the tests with
50+ type : integer
51+ npm_script_extra_args :
52+ description : Extra arguments passed to npm scripts
53+ type : string
54+ default : " "
55+ steps :
56+ - checkout
57+ - run :
58+ name : Install modules and dependencies.
59+ command : npm install
60+ - run :
61+ name : Check code style and linting
62+ command : npm run check -- << parameters.npm_script_extra_args >>
63+ - run :
64+ name : Ensure code compiles to JS.
65+ command : npm run compile -- << parameters.npm_script_extra_args >>
66+ - run :
67+ name : Run unit tests.
68+ command : npm run test -- << parameters.npm_script_extra_args >>
69+ - run :
70+ name : Submit coverage data to codecov.
71+ command : npm run codecov -- << parameters.npm_script_extra_args >>
72+ when : always
73+
9374 publish_npm :
9475 docker :
9576 - image : node:8
0 commit comments