11version : 2.1
22orbs :
3- browser-tools : circleci/browser-tools@1.2.2
3+ browser-tools : circleci/browser-tools@1.4.8
44
55# Inspired by:
66# https://github.com/CircleCI-Public/circleci-demo-workflows/blob/workspace-forwarding/.circleci/config.yml
2828
2929 install-and-cibuild : # main cibuild using node 16 & npm 7
3030 docker :
31- - image : cimg/node:16.8.0
31+ - image : cimg/node:16.17.1
3232 working_directory : ~/plotly.js
3333 steps :
3434 - checkout
@@ -52,11 +52,10 @@ jobs:
5252 timezone-jasmine :
5353 docker :
5454 # need '-browsers' version to test in real (xvfb-wrapped) browsers
55- - image : cimg/node:16.8.0 -browsers
55+ - image : cimg/node:16.17.1 -browsers
5656 working_directory : ~/plotly.js
5757 steps :
5858 - browser-tools/install-browser-tools : &browser-versions
59- chrome-version : 93.0.4577.63
6059 install-firefox : false
6160 install-geckodriver : false
6261 - attach_workspace :
@@ -85,15 +84,14 @@ jobs:
8584 no-gl-jasmine :
8685 docker :
8786 # need '-browsers' version to test in real (xvfb-wrapped) browsers
88- - image : cimg/node:16.8.0 -browsers
87+ - image : cimg/node:16.17.1 -browsers
8988 environment :
9089 # Alaska time (arbitrary timezone to test date logic)
9190 TZ : " America/Anchorage"
9291 parallelism : 12
9392 working_directory : ~/plotly.js
9493 steps :
9594 - browser-tools/install-browser-tools : &browser-versions
96- chrome-version : 93.0.4577.63
9795 install-firefox : false
9896 install-geckodriver : false
9997 - attach_workspace :
@@ -105,15 +103,14 @@ jobs:
105103 webgl-jasmine :
106104 docker :
107105 # need '-browsers' version to test in real (xvfb-wrapped) browsers
108- - image : cimg/node:16.8.0 -browsers
106+ - image : cimg/node:16.17.1 -browsers
109107 environment :
110108 # Alaska time (arbitrary timezone to test date logic)
111109 TZ : " America/Anchorage"
112110 parallelism : 8
113111 working_directory : ~/plotly.js
114112 steps :
115113 - browser-tools/install-browser-tools : &browser-versions
116- chrome-version : 93.0.4577.63
117114 install-firefox : false
118115 install-geckodriver : false
119116 - attach_workspace :
@@ -122,17 +119,35 @@ jobs:
122119 name : Run jasmine tests (part B)
123120 command : .circleci/test.sh webgl-jasmine
124121
122+ virtual-webgl-jasmine :
123+ docker :
124+ # need '-browsers' version to test in real (xvfb-wrapped) browsers
125+ - image : cimg/node:16.17.1-browsers
126+ environment :
127+ # Alaska time (arbitrary timezone to test date logic)
128+ TZ : " America/Anchorage"
129+ parallelism : 8
130+ working_directory : ~/plotly.js
131+ steps :
132+ - browser-tools/install-browser-tools : &browser-versions
133+ install-firefox : false
134+ install-geckodriver : false
135+ - attach_workspace :
136+ at : ~/
137+ - run :
138+ name : Run jasmine tests (part B)
139+ command : .circleci/test.sh virtual-webgl-jasmine
140+
125141 flaky-no-gl-jasmine :
126142 docker :
127143 # need '-browsers' version to test in real (xvfb-wrapped) browsers
128- - image : cimg/node:16.8.0 -browsers
144+ - image : cimg/node:16.17.1 -browsers
129145 environment :
130146 # Alaska time (arbitrary timezone to test date logic)
131147 TZ : " America/Anchorage"
132148 working_directory : ~/plotly.js
133149 steps :
134150 - browser-tools/install-browser-tools : &browser-versions
135- chrome-version : 93.0.4577.63
136151 install-firefox : false
137152 install-geckodriver : false
138153 - attach_workspace :
@@ -144,14 +159,13 @@ jobs:
144159 bundle-jasmine :
145160 docker :
146161 # need '-browsers' version to test in real (xvfb-wrapped) browsers
147- - image : cimg/node:16.8.0 -browsers
162+ - image : cimg/node:16.17.1 -browsers
148163 environment :
149164 # Alaska time (arbitrary timezone to test date logic)
150165 TZ : " America/Anchorage"
151166 working_directory : ~/plotly.js
152167 steps :
153168 - browser-tools/install-browser-tools : &browser-versions
154- chrome-version : 93.0.4577.63
155169 install-firefox : false
156170 install-geckodriver : false
157171 - attach_workspace :
@@ -163,7 +177,7 @@ jobs:
163177 mathjax-firefox81 :
164178 docker :
165179 # need '-browsers' version to test in real (xvfb-wrapped) browsers
166- - image : cimg/node:16.8.0 -browsers
180+ - image : cimg/node:16.17.1 -browsers
167181 environment :
168182 # Alaska time (arbitrary timezone to test date logic)
169183 TZ : " America/Anchorage"
@@ -182,7 +196,7 @@ jobs:
182196 mathjax-firefox82 :
183197 docker :
184198 # need '-browsers' version to test in real (xvfb-wrapped) browsers
185- - image : cimg/node:16.8.0 -browsers
199+ - image : cimg/node:16.17.1 -browsers
186200 environment :
187201 # Alaska time (arbitrary timezone to test date logic)
188202 TZ : " America/Anchorage"
@@ -201,7 +215,7 @@ jobs:
201215 mathjax-firefoxLatest :
202216 docker :
203217 # need '-browsers' version to test in real (xvfb-wrapped) browsers
204- - image : cimg/node:16.8.0 -browsers
218+ - image : cimg/node:16.17.1 -browsers
205219 environment :
206220 # Alaska time (arbitrary timezone to test date logic)
207221 TZ : " America/Anchorage"
@@ -216,6 +230,25 @@ jobs:
216230 name : Test MathJax on firefox-latest
217231 command : .circleci/test.sh mathjax-firefox82+
218232
233+ make-baselines-virtual-webgl :
234+ parallelism : 4
235+ docker :
236+ - image : circleci/python:3.8.9
237+ working_directory : ~/plotly.js
238+ steps :
239+ - attach_workspace :
240+ at : ~/
241+ - run :
242+ name : Install kaleido, plotly.io and required fonts
243+ command : .circleci/env_image.sh
244+ - run :
245+ name : Create png files using virtual-webgl & WebGL v1
246+ command : .circleci/test.sh make-baselines-virtual-webgl
247+ - persist_to_workspace :
248+ root : ~/
249+ paths :
250+ - plotly.js
251+
219252 make-baselines-mathjax3 :
220253 docker :
221254 - image : circleci/python:3.8.9
@@ -253,9 +286,56 @@ jobs:
253286 paths :
254287 - plotly.js
255288
289+ make-baselines-b64 :
290+ parallelism : 4
291+ docker :
292+ - image : circleci/python:3.8.9
293+ working_directory : ~/plotly.js
294+ steps :
295+ - attach_workspace :
296+ at : ~/
297+ - run :
298+ name : Install kaleido, plotly.io and required fonts
299+ command : .circleci/env_image.sh
300+ - run :
301+ name : Create all png files
302+ command : .circleci/test.sh make-baselines-b64
303+ - persist_to_workspace :
304+ root : ~/
305+ paths :
306+ - plotly.js
307+
256308 test-baselines :
257309 docker :
258- - image : circleci/node:16.8.0
310+ - image : circleci/node:16.9.0
311+ working_directory : ~/plotly.js
312+ steps :
313+ - attach_workspace :
314+ at : ~/
315+ - run :
316+ name : Compare pixels
317+ command : .circleci/test.sh test-image ; find build -maxdepth 1 -type f -delete
318+ - store_artifacts :
319+ path : build
320+ destination : /
321+
322+ test-baselines-virtual-webgl :
323+ docker :
324+ - image : circleci/node:16.9.0
325+ working_directory : ~/plotly.js
326+ steps :
327+ - attach_workspace :
328+ at : ~/
329+ - run :
330+ name : Compare pixels
331+ command : .circleci/test.sh test-image-virtual-webgl ; find build -maxdepth 1 -type f -delete
332+ - store_artifacts :
333+ path : build
334+ destination : /
335+
336+ test-baselines-b64 :
337+ docker :
338+ - image : circleci/node:16.9.0
259339 working_directory : ~/plotly.js
260340 steps :
261341 - attach_workspace :
@@ -269,7 +349,7 @@ jobs:
269349
270350 test-baselines-mathjax3 :
271351 docker :
272- - image : circleci/node:16.8 .0
352+ - image : circleci/node:16.9 .0
273353 working_directory : ~/plotly.js
274354 steps :
275355 - attach_workspace :
@@ -306,7 +386,7 @@ jobs:
306386
307387 test-exports :
308388 docker :
309- - image : circleci/node:16.8 .0
389+ - image : circleci/node:16.9 .0
310390 working_directory : ~/plotly.js
311391 steps :
312392 - attach_workspace :
@@ -320,7 +400,7 @@ jobs:
320400
321401 mock-validation :
322402 docker :
323- - image : cimg/node:16.8.0
403+ - image : cimg/node:16.17.1
324404 working_directory : ~/plotly.js
325405 steps :
326406 - attach_workspace :
@@ -334,7 +414,7 @@ jobs:
334414
335415 source-syntax :
336416 docker :
337- - image : cimg/node:16.8.0
417+ - image : cimg/node:16.17.1
338418 working_directory : ~/plotly.js
339419 steps :
340420 - attach_workspace :
@@ -345,7 +425,7 @@ jobs:
345425
346426 publish-dist :
347427 docker :
348- - image : cimg/node:16.8.0
428+ - image : cimg/node:16.17.1
349429 working_directory : ~/plotly.js
350430 steps :
351431 - checkout
@@ -400,21 +480,37 @@ jobs:
400480 - run :
401481 name : Test plot-schema.json diff - If failed, after (npm start) you could run (npm run schema && git add test/plot-schema.json && git commit -m "update plot-schema diff")
402482 command : diff --unified --color dist/plot-schema.json test/plot-schema.json
483+ - run :
484+ name : Test plotly.min.js import using amdefine
485+ command : npm run test-amdefine
403486 - run :
404487 name : Test plotly.min.js import using requirejs
405488 command : npm run test-requirejs
406489 - run :
407- name : Test plotly bundles againt unexpected characters
408- command : npm run no-bad-char
409- - run :
410- name : Display function constructors in plotly.js bundle
411- command : npm run log-new-func
490+ name : Test plotly bundles against es6
491+ command : npm run no-es6-dist
412492 - run :
413- name : Test certain bundles against function constructors
493+ name : Display function constructors in all bundles
414494 command : npm run no-new-func
495+
496+ test-stackgl-bundle :
497+ docker :
498+ - image : cimg/node:16.17.1
499+ working_directory : ~/plotly.js
500+ steps :
501+ - checkout
415502 - run :
416- name : Test plotly bundles against es6
417- command : npm run no-es6-dist
503+ name : Set up build environment
504+ command : cd stackgl_modules && npm ci
505+ - run :
506+ name : Bundle bundle-stackgl/index.js
507+ command : cd stackgl_modules && cp index.js INDEX.js && npm run bundle-stackgl
508+ - run :
509+ name : Test stackgl_modules/index.js diff - If failed please remember this file in auto generated and you should not modify it directly until a dependeny change. To suggest changes please submit pull request to the relevant dependency.
510+ command : diff --unified --color stackgl_modules/INDEX.js stackgl_modules/index.js
511+ - store_artifacts :
512+ path : stackgl_modules/index.js
513+ destination : stackgl_modules/index.js
418514
419515workflows :
420516 version : 2
@@ -444,15 +540,30 @@ workflows:
444540 - webgl-jasmine :
445541 requires :
446542 - install-and-cibuild
543+ - virtual-webgl-jasmine :
544+ requires :
545+ - install-and-cibuild
447546 - flaky-no-gl-jasmine :
448547 requires :
449548 - install-and-cibuild
549+ - make-baselines-virtual-webgl :
550+ requires :
551+ - install-and-cibuild
552+ - test-baselines-virtual-webgl :
553+ requires :
554+ - make-baselines-virtual-webgl
450555 - make-baselines-mathjax3 :
451556 requires :
452557 - install-and-cibuild
453558 - test-baselines-mathjax3 :
454559 requires :
455560 - make-baselines-mathjax3
561+ - make-baselines-b64 :
562+ requires :
563+ - install-and-cibuild
564+ - test-baselines-b64 :
565+ requires :
566+ - make-baselines-b64
456567 - make-baselines :
457568 requires :
458569 - install-and-cibuild
@@ -473,3 +584,5 @@ workflows:
473584 - install-and-cibuild
474585
475586 - publish-dist
587+
588+ - test-stackgl-bundle
0 commit comments