@@ -13,12 +13,12 @@ jobs:
1313
1414 artifacts :
1515 docker :
16- - image : circleci/python:3.7.9-stretch -node-browsers
16+ - image : circleci/python:3.9.2-buster -node-browsers
1717 auth :
1818 username : dashautomation
1919 password : $DASH_PAT_DOCKERHUB
2020 environment :
21- PYVERSION : python37
21+ PYVERSION : python39
2222 steps :
2323 - checkout
2424 - run : echo $PYVERSION > ver.txt
@@ -30,16 +30,16 @@ jobs:
3030 path : ~/dash/packages
3131 destination : /tmp/packages
3232
33- lint-unit-37 : &lint-unit
33+ lint-unit-39 : &lint-unit
3434 working_directory : ~/dash
3535 docker :
36- - image : circleci/python:3.7.9-stretch -node-browsers
36+ - image : circleci/python:3.9.2-buster -node-browsers
3737 auth :
3838 username : dashautomation
3939 password : $DASH_PAT_DOCKERHUB
4040 environment :
41- PYLINTRC : .pylintrc37
42- PYVERSION : python37
41+ PYLINTRC : .pylintrc39
42+ PYVERSION : python39
4343
4444 steps :
4545 - checkout
6161 command : |
6262 . venv/bin/activate
6363 set -eo pipefail
64+ cd dash/dash-renderer && renderer build && cd ../../
6465 pip install -e . --progress-bar off && pip list | grep dash
6566 npm install --production && npm run initialize
6667 npm run lint
7374 lint-unit-36 :
7475 << : *lint-unit
7576 docker :
76- - image : circleci/python:3.6.12 -stretch-node-browsers
77+ - image : circleci/python:3.6.13 -stretch-node-browsers
7778 auth :
7879 username : dashautomation
7980 password : $DASH_PAT_DOCKERHUB
@@ -92,15 +93,15 @@ jobs:
9293 PYLINTRC : .pylintrc
9394 PYVERSION : python27
9495
95- build-core-37 : &build-core
96+ build-core-39 : &build-core
9697 working_directory : ~/dash
9798 docker :
98- - image : circleci/python:3.7.9-stretch -node-browsers
99+ - image : circleci/python:3.9.2-buster -node-browsers
99100 auth :
100101 username : dashautomation
101102 password : $DASH_PAT_DOCKERHUB
102103 environment :
103- PYVERSION : python37
104+ PYVERSION : python39
104105 steps :
105106 - checkout
106107 - run : echo $PYVERSION > ver.txt
@@ -121,7 +122,7 @@ jobs:
121122 name : ️️🏗️ build core
122123 command : |
123124 . venv/bin/activate && pip install --no-cache-dir --upgrade -e . --progress-bar off && mkdir packages
124- cd dash-renderer && renderer build && python setup.py sdist && mv dist/* ../ packages/ && cd ..
125+ cd dash/dash -renderer && renderer build && cd ../../ && python setup.py sdist && mv dist/* packages/
125126 git clone --depth 1 https://github.com/plotly/dash-core-components.git
126127 cd dash-core-components && npm ci && npm run build && python setup.py sdist && mv dist/* ../packages/ && cd ..
127128 ls -la packages
@@ -133,7 +134,7 @@ jobs:
133134 build-core-36 :
134135 << : *build-core
135136 docker :
136- - image : circleci/python:3.6.12 -stretch-node-browsers
137+ - image : circleci/python:3.6.13 -stretch-node-browsers
137138 auth :
138139 username : dashautomation
139140 password : $DASH_PAT_DOCKERHUB
@@ -150,15 +151,15 @@ jobs:
150151 environment :
151152 PYVERSION : python27
152153
153- build-misc-37 : &build-misc
154+ build-misc-39 : &build-misc
154155 working_directory : ~/dash
155156 docker :
156- - image : circleci/python:3.7.9-stretch -node-browsers
157+ - image : circleci/python:3.9.2-buster -node-browsers
157158 auth :
158159 username : dashautomation
159160 password : $DASH_PAT_DOCKERHUB
160161 environment :
161- PYVERSION : python37
162+ PYVERSION : python39
162163
163164 steps :
164165 - checkout
@@ -192,7 +193,7 @@ jobs:
192193 build-misc-36 :
193194 << : *build-misc
194195 docker :
195- - image : circleci/python:3.6.12 -stretch-node-browsers
196+ - image : circleci/python:3.6.13 -stretch-node-browsers
196197 auth :
197198 username : dashautomation
198199 password : $DASH_PAT_DOCKERHUB
@@ -209,144 +210,35 @@ jobs:
209210 environment :
210211 PYVERSION : python27
211212
212- build-windows-37 :
213+ build-windows-39 :
213214 working_directory : ~/dash
214215 executor :
215216 name : win/default
216217 shell : bash.exe
217218 environment :
218- PYVERSION : python37
219+ PYVERSION : python39
219220 steps :
220221 - checkout
221222 - run : echo $PYVERSION > ver.txt
222223 - run :
223224 name : ️️🏗️ build core
224225 command : |
225226 pip install --no-cache-dir --upgrade -e .[dev,testing] --progress-bar off
226- cd dash-renderer && renderer build && python setup.py sdist && mv dist/* ../ packages/ && cd ..
227+ cd dash/dash -renderer && renderer build && cd ../../ && python setup.py sdist && mv dist/* packages/
227228 git clone --depth 1 https://github.com/plotly/dash-core-components.git
228229 cd dash-core-components && npm ci && npm run build && python setup.py sdist && cd ..
229230
230- build-dashr :
231- working_directory : ~/dashr
232- docker :
233- - image : plotly/dashr:ci
234- auth :
235- username : dashautomation
236- password : $DASH_PAT_DOCKERHUB
237- environment :
238- PERCY_PARALLEL_TOTAL : -1
239- PYVERSION : python37
240- _R_CHECK_FORCE_SUGGESTS_ : FALSE
241-
242- steps :
243- - checkout
244- - run :
245- name : 🏭 clone and npm build core for R
246- command : |
247- python -m venv venv
248- . venv/bin/activate
249- npm ci
250- pip install --no-cache-dir --upgrade -e .[dev,testing] --progress-bar off
251- git clone --depth 1 https://github.com/plotly/dashR.git -b dev dashR
252- git clone --depth 1 https://github.com/plotly/dash-html-components.git
253- git clone --depth 1 https://github.com/plotly/dash-core-components.git
254- git clone --depth 1 https://github.com/plotly/dash-table.git
255- shopt -s extglob
256- cd dash-html-components; npm ci && npm run build; rm -rf !(.|..|DESCRIPTION|LICENSE.txt|LICENSE|NAMESPACE|.Rbuildignore|R|man|inst|vignettes|build)
257- cd ../dash-core-components; npm ci && npm run build; rm -rf !(.|..|DESCRIPTION|LICENSE.txt|LICENSE|NAMESPACE|.Rbuildignore|R|man|inst|vignettes|build)
258- cd ../dash-table; npm ci && npm run build; rm -rf !(.|..|DESCRIPTION|LICENSE.txt|LICENSE|NAMESPACE|.Rbuildignore|R|man|inst|vignettes|build); cd ..
259-
260- - run :
261- name : 🔧 fix up dash metadata
262- command : |
263- sudo Rscript dashR/tests/circleci/fixup_metadata.R
264-
265- - run :
266- name : 🎛 set environment variables
267- command : |
268- Rscript --vanilla \
269- -e 'dash_dsc <- read.dcf("dashR/DESCRIPTION")' \
270- -e 'cat(sprintf("export DASH_TARBALL=%s_%s.tar.gz\n", dash_dsc[,"Package"], dash_dsc[,"Version"]))' \
271- -e 'cat(sprintf("export DASH_CHECK_DIR=%s.Rcheck\n", dash_dsc[,"Package"]))' \
272- -e 'dhc_dsc <- read.dcf("dash-html-components/DESCRIPTION")' \
273- -e 'cat(sprintf("export DHC_TARBALL=%s_%s.tar.gz\n", dhc_dsc[,"Package"], dhc_dsc[,"Version"]))' \
274- -e 'cat(sprintf("export DHC_CHECK_DIR=%s.Rcheck\n", dhc_dsc[,"Package"]))' \
275- -e 'dcc_dsc <- read.dcf("dash-core-components/DESCRIPTION")' \
276- -e 'cat(sprintf("export DCC_TARBALL=%s_%s.tar.gz\n", dcc_dsc[,"Package"], dcc_dsc[,"Version"]))' \
277- -e 'cat(sprintf("export DCC_CHECK_DIR=%s.Rcheck\n", dcc_dsc[,"Package"]))' \
278- -e 'dt_dsc <- read.dcf("dash-table/DESCRIPTION")' \
279- -e 'cat(sprintf("export DT_TARBALL=%s_%s.tar.gz\n", dt_dsc[,"Package"], dt_dsc[,"Version"]))' \
280- -e 'cat(sprintf("export DT_CHECK_DIR=%s.Rcheck\n", dt_dsc[,"Package"]))' \
281- >> ${BASH_ENV}
282-
283- - run :
284- name : ️📋 run CRAN package checks
285- command : |
286- R CMD build dash-core-components
287- R CMD build dash-html-components
288- R CMD build dash-table
289- R CMD build dashR
290- sudo R CMD INSTALL dash-core-components
291- sudo R CMD INSTALL dash-html-components
292- sudo R CMD INSTALL dash-table
293- sudo R CMD INSTALL dashR
294- R CMD check "${DHC_TARBALL}" --as-cran --no-manual
295- R CMD check "${DCC_TARBALL}" --as-cran --no-manual
296- R CMD check "${DT_TARBALL}" --as-cran --no-manual
297- R CMD check "${DASH_TARBALL}" --as-cran --no-manual
298-
299- - run :
300- name : 🕵 detect failures
301- command : |
302- Rscript -e "message(devtools::check_failures(path = '${DHC_CHECK_DIR}'))"
303- Rscript -e "message(devtools::check_failures(path = '${DCC_CHECK_DIR}'))"
304- Rscript -e "message(devtools::check_failures(path = '${DT_CHECK_DIR}'))"
305- Rscript -e "message(devtools::check_failures(path = '${DASH_CHECK_DIR}'))"
306- # warnings are errors; enabled for stricter CRAN checks, disable if noisy
307- # if grep -q -R "WARNING" "${DHC_CHECK_DIR}/00check.log"; then exit 1; fi
308- # if grep -q -R "WARNING" "${DCC_CHECK_DIR}/00check.log"; then exit 1; fi
309- # if grep -q -R "WARNING" "${DT_CHECK_DIR}/00check.log"; then exit 1; fi
310- # if grep -q -R "WARNING" "${DASH_CHECK_DIR}/00check.log"; then exit 1; fi
311-
312- - run :
313- name : 🔎 run unit tests
314- command : |
315- # unfortunately testthat does not and will not support returning a status
316- # code other than success, even when tests fail -- this is a workaround
317- sudo Rscript -e 'res=devtools::test("dashR/tests/", reporter=default_reporter());df=as.data.frame(res);if(sum(df$failed) > 0 || any(df$error)) {q(status=1)}'
318-
319- - run :
320- name : ⚙️ Integration tests
321- command : |
322- python -m venv venv
323- . venv/bin/activate
324- npm run setup-tests.R
325- export PATH=$PATH:/home/circleci/.local/bin/
326- pytest --nopercyfinalize --junitxml=test-reports/dashr.xml dashR/tests/integration/dopsa/
327- - store_artifacts :
328- path : test-reports
329- - store_test_results :
330- path : test-reports
331- - store_artifacts :
332- path : /tmp/dash_artifacts
333- - run :
334- name : 🦔 percy finalize
335- command : npx percy finalize --all
336- when : on_fail
337-
338-
339- test-37 : &test
231+ test-39 : &test
340232 working_directory : ~/dash
341233 docker :
342- - image : circleci/python:3.7.9-stretch -node-browsers
234+ - image : circleci/python:3.9.2-buster -node-browsers
343235 auth :
344236 username : dashautomation
345237 password : $DASH_PAT_DOCKERHUB
346238 environment :
347239 PERCY_PARALLEL_TOTAL : -1
348240 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD : True
349- PYVERSION : python37
241+ PYVERSION : python39
350242 parallelism : 3
351243 steps :
352244 - checkout
@@ -384,7 +276,7 @@ jobs:
384276 test-36 :
385277 << : *test
386278 docker :
387- - image : circleci/python:3.6.12 -stretch-node-browsers
279+ - image : circleci/python:3.6.13 -stretch-node-browsers
388280 auth :
389281 username : dashautomation
390282 password : $DASH_PAT_DOCKERHUB
@@ -405,21 +297,19 @@ jobs:
405297
406298workflows :
407299 version : 2
408- python3.7 :
300+ python3.9 :
409301 jobs :
410- - lint-unit-37
411- - build-core-37
412- - build-windows-37
413- - build-misc-37
414- - build-dashr
415- - test-37 :
302+ - lint-unit-39
303+ - build-core-39
304+ - build-windows-39
305+ - build-misc-39
306+ - test-39 :
416307 requires :
417- - build-core-37
418- - build-misc-37
308+ - build-core-39
309+ - build-misc-39
419310 - percy-finalize :
420311 requires :
421- - build-dashr
422- - test-37
312+ - test-39
423313 - artifacts :
424314 requires :
425315 - percy-finalize
0 commit comments