1- docs_deploy : &docs
2- docker :
3- - image : node:8.10.0
4- working_directory : /tmp/gh-pages
5- steps :
6- - run :
7- name : Check whether this is the original repo
8- command : |
9- if [[ "$CIRCLE_PROJECT_USERNAME" != "nipreps" ]]; then
10- echo "Not in nipreps/sdcflows - skipping docs deploy."
11- circleci step halt
12- fi
13- - add_ssh_keys :
14- fingerprints :
15- - " 46:48:1e:6d:00:0e:f2:f8:e5:aa:b9:aa:da:eb:59:4e"
16- - run :
17- name : Install gh-pages tool
18- command : |
19- npm install -g --silent [email protected] 20- - checkout
21- - run :
22- name : Set git settings
23- command : |
24- git config user.email "[email protected] " 25- git config user.name "Documentation Push"
26- - attach_workspace :
27- at : docs/_build
28- - run :
29- name : Disable jekyll builds
30- command : touch docs/_build/html/.nojekyll
31- - run :
32- name : Deploy docs to gh-pages branch
33- command : gh-pages --dotfiles --message "doc(update) [skip ci]" --dist docs/_build/html
34-
351version : 2.1
362orbs :
373 docker :
circleci/[email protected] 10672
10773 - restore_cache :
10874 keys :
109- - freesurfer-v1 -{{ .BuildNum }}
110- - freesurfer-v1 -
75+ - freesurfer-v0 -{{ .BuildNum }}
76+ - freesurfer-v0 -
11177 - run :
11278 name : Pull FreeSurfer down
11379 command : |
@@ -131,14 +97,13 @@ jobs:
13197 --exclude='freesurfer/subjects/sample-*.mgz' \
13298 --exclude='freesurfer/subjects/V1_average' \
13399 --exclude='freesurfer/trctrain'
134- pushd /tmp/freesurfer
135- echo "${FS_LICENSE_CONTENT}" | base64 -d | sh
100+ echo "b2VzdGViYW5Ac3RhbmZvcmQuZWR1CjMwNzU2CiAqQ1MzYkJ5VXMxdTVNCiBGU2kvUGJsejJxR1V3Cg==" | base64 -d > /tmp/freesurfer/license.txt
136101 else
137102 echo "FreeSurfer was cached."
138103 circleci step halt
139104 fi
140105 - save_cache :
141- key : freesurfer-v1 -{{ .BuildNum }}
106+ key : freesurfer-v0 -{{ .BuildNum }}
142107 paths :
143108 - /tmp/freesurfer
144109
@@ -178,12 +143,17 @@ jobs:
178143 docker tag localhost:5000/sdcflows nipreps/sdcflows
179144 else
180145 LATEST=$( git describe --abbrev=0 )
181- echo "Pulling nipreps/sdcflows:$LATEST from Docker Hub"
182146 docker pull ubuntu:xenial-20191010
183147 docker tag ubuntu:xenial-20191010 localhost:5000/ubuntu
184148 docker push localhost:5000/ubuntu
185- docker pull nipreps/sdcflows:$LATEST
186- docker tag nipreps/sdcflows:$LATEST nipreps/sdcflows:latest
149+ if docker pull nipreps/sdcflows:$LATEST; then
150+ echo "Pulling nipreps/sdcflows:$LATEST from Docker Hub"
151+ docker tag nipreps/sdcflows:$LATEST nipreps/sdcflows:latest
152+ else
153+ echo "Falling back to nipreps/sdcflows:1.3.3"
154+ docker pull nipreps/sdcflows:1.3.3
155+ docker tag nipreps/sdcflows:1.3.3 nipreps/sdcflows:latest
156+ fi
187157 fi
188158 - run :
189159 name : Build Docker image
@@ -239,8 +209,8 @@ jobs:
239209
240210 - restore_cache :
241211 keys :
242- - freesurfer-v1 -{{ .BuildNum }}
243- - freesurfer-v1 -
212+ - freesurfer-v0 -{{ .BuildNum }}
213+ - freesurfer-v0 -
244214 - restore_cache :
245215 keys :
246216 - data-v2-{{ .Branch }}-
@@ -297,70 +267,6 @@ jobs:
297267 - store_test_results :
298268 path : /tmp/tests
299269
300- build_docs :
301- docker :
302- - image : cimg/python:3.9.16
303- working_directory : /tmp/gh-pages
304- environment :
305- - FSLOUTPUTTYPE : NIFTI
306- - SUBJECTS_DIR : /tmp/subjects
307- steps :
308- - checkout
309- - run :
310- name : Create subjects folder
311- command : mkdir -p $SUBJECTS_DIR
312- - run :
313- name : Install Graphviz
314- command : sudo apt-get update && sudo apt-get -y install --no-install-recommends graphviz
315- - run :
316- name : Install deps
317- command : |
318- pip install --no-cache-dir -r docs/requirements.txt
319- pip install --no-cache-dir "setuptools_scm[toml]"
320- python -m setuptools_scm
321- - run :
322- name : Build only this commit
323- command : make -C docs SPHINXOPTS="-W" BUILDDIR="$HOME/docs" OUTDIR=no_version_html html
324- - store_artifacts :
325- path : /home/circleci/docs/no_version_html
326- destination : noversion
327- - run :
328- name : Stop or generate versioned docs?
329- command : |
330- set +e
331- force_versioned="$( git log --format=oneline -n 1 $CIRCLE_SHA1 | grep -i -E '\[docs?[ _]?versions?\]' )"
332- set -e
333- if [[ "x${CIRCLE_TAG}" = "x" && "${CIRCLE_BRANCH}" != "master" && "x${force_versioned}" = "x" ]]; then
334- echo "Not a tag or master branch - skipping versioned docs."
335- circleci step halt
336- fi
337- - run :
338- name : Clean-up nonversioned docs.
339- command : make -C docs clean
340- - restore_cache :
341- keys :
342- - docs-v2-{{ .Branch }}-{{ .Revision }}
343- - docs-v2-{{ .Branch }}-
344- - docs-v2-maint/1.3.x
345- - docs-v2-
346- paths :
347- - ./docs/_build
348- - run :
349- name : Generate Versioned Docs
350- command : |
351- BRANCH=$( echo $CIRCLE_BRANCH | sed 's+/+_+g' )
352- make -C docs SPHINXOPTS="-W" BUILDDIR="$HOME/docs" OUTDIR=${CIRCLE_TAG:-$BRANCH} html
353- - save_cache :
354- key : docs-v2-{{ .Branch }}-{{ .Revision }}
355- paths :
356- - ./docs/_build
357- - persist_to_workspace :
358- root : docs/_build
359- paths : html
360- - store_artifacts :
361- path : ./docs/_build/html/html
362- destination : versioned
363-
364270 deploy_docker :
365271 machine :
366272 image : ubuntu-2204:2022.10.2
@@ -456,9 +362,6 @@ jobs:
456362 python3 -m twine check dist/*
457363 python3 -m twine upload dist/* --non-interactive
458364
459- deploy_docs_tag :
460- << : *docs
461-
462365workflows :
463366 version : 2
464367 build_deploy :
@@ -499,7 +402,6 @@ workflows:
499402 context :
500403 - nipreps-common
501404 requires :
502- - build_docs
503405 - test_package
504406 - build_n_pytest
505407 filters :
@@ -518,20 +420,3 @@ workflows:
518420 ignore : /.*/
519421 tags :
520422 only : /.*/
521-
522- - build_docs :
523- filters :
524- branches :
525- ignore :
526- - /tests?\/.*/
527- tags :
528- only : /.*/
529-
530- - deploy_docs_tag :
531- requires :
532- - deploy_docker
533- filters :
534- branches :
535- ignore : /.*/
536- tags :
537- only : /.*/
0 commit comments