@@ -2,7 +2,7 @@ version: 2
22jobs :
33 build_pytest :
44 machine :
5- image : circleci/classic:201808-01
5+ image : ubuntu-2004:202107-02
66 working_directory : /tmp/src/nitransforms
77 environment :
88 TZ : " /usr/share/zoneinfo/America/Los_Angeles"
@@ -44,13 +44,17 @@ jobs:
4444 - run :
4545 name : Prepare a Python environment
4646 command : |
47- pyenv local 3.7.0
47+ export PY3=$(pyenv versions | grep '3\.' |
48+ sed -e 's/.* 3\./3./' -e 's/ .*//')
49+ pyenv local $PY3
4850 python3 -m pip install "setuptools >= 45.0" "setuptools_scm[toml] >= 3.4" "pip>=10.0.1"
4951 - run :
5052 name : Build Docker image & push to registry
5153 no_output_timeout : 60m
5254 command : |
53- pyenv local 3.7.0
55+ export PY3=$(pyenv versions | grep '3\.' |
56+ sed -e 's/.* 3\./3./' -e 's/ .*//')
57+ pyenv local $PY3
5458 e=1 && for i in {1..5}; do
5559 docker build --rm --cache-from=nitransforms:latest \
5660 -t nitransforms:latest \
7377 - run :
7478 name : Check version packaged in Docker image
7579 command : |
76- pyenv local 3.7.0
80+ export PY3=$(pyenv versions | grep '3\.' |
81+ sed -e 's/.* 3\./3./' -e 's/ .*//')
82+ pyenv local $PY3
7783 THISVERSION=${CIRCLE_TAG:-$(python3 setup.py --version)}
7884 INSTALLED_VERSION=$(\
7985 docker run -it --rm --entrypoint=python nitransforms \
@@ -90,24 +96,56 @@ jobs:
9096
9197 - restore_cache :
9298 keys :
93- - data-v1-{{ .Branch }}-{{ epoch }}
94- - data-v1-{{ .Branch }}-
95- - data-v1-master-
96- - data-v1-
97- paths :
98- - /tmp/data
99+ - env-v1-{{ .Branch }}-
100+ - env-v1-master-
101+ - env-v1-
102+ - restore_cache :
103+ keys :
104+ - data-v2-{{ .Branch }}-
105+ - data-v2-master-
106+ - data-v2-
99107 - run :
100- name : Download data
108+ name : Setup git-annex
101109 command : |
102- if [[ ! -d /tmp/data ]]; then
103- wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q \
104- -O data.zip "https://files.osf.io/v1/resources/fvuh8/providers/osfstorage/5e7d5b65c3f8d300bafa05e0/?zip="
105- unzip -d /tmp/data data.zip
106- else
107- echo "Dataset was cached"
110+ if [[ ! -d /usr/lib/git-annex.linux ]]; then
111+ wget -O- http://neuro.debian.net/lists/focal.us-ca.full | tee /etc/apt/sources.list.d/neurodebian.sources.list
112+ apt-key add /tmp/src/nitransforms/docker/files/neurodebian.gpg
113+ apt-key adv --recv-keys --keyserver hkps://keys.openpgp.org 0xA5D32F012649A5A9 || true
114+ apt update && apt-get install -y --no-install-recommends git-annex-standalone
108115 fi
116+ git config --global user.name 'NiPy'
117+ git config --global user.email 'nipreps@gmail.com'
118+ - run :
119+ name : Setup DataLad & TemplateFlow
120+ command : |
121+ export PY3=$(pyenv versions | grep '3\.' |
122+ sed -e 's/.* 3\./3./' -e 's/ .*//')
123+ pyenv local $PY3
124+ python -m pip install --no-cache-dir -U pip
125+ python -m pip install --no-cache-dir -U datalad datalad-osf
126+
127+ - save_cache :
128+ key : env-v1-{{ .Branch }}-{{ .BuildNum }}
129+ paths :
130+ - /usr/local/bin
131+ - /usr/local/lib/python3.7/site-packages
132+ - /usr/bin/git-annex
133+ - /usr/bin/git-annex-shell
134+ - /usr/lib/git-annex.linux
135+
136+ - run :
137+ name : Install test data from GIN
138+ command : |
139+ export PY3=$(pyenv versions | grep '3\.' |
140+ sed -e 's/.* 3\./3./' -e 's/ .*//')
141+ pyenv local $PY3
142+
143+ cd /tmp/data
144+ datalad install -r https://gin.g-node.org/oesteban/nitransforms-tests
145+ datalad update -r --merge -d nitransforms-tests/
146+ datalad get -r -d nitransforms-tests/
109147 - save_cache :
110- key : data-v1-{{ .Branch }}-{{ epoch }}
148+ key : data-v1-{{ .Branch }}-{{ .BuildNum }}
111149 paths :
112150 - /tmp/data
113151 - run :
@@ -119,7 +157,7 @@ jobs:
119157 command : |
120158 mkdir -p $PWD/{artifacts,summaries}
121159 docker run -u $( id -u ) -it --rm -w /src/nitransforms \
122- -v /tmp/data:/data -e TEST_DATA_HOME=/data \
160+ -v /tmp/data/nitransforms-tests :/data -e TEST_DATA_HOME=/data \
123161 -e COVERAGE_FILE=/tmp/summaries/.pytest.coverage \
124162 -v /tmp/fslicense/license.txt:/opt/freesurfer/license.txt:ro \
125163 -v ${PWD}:/tmp nitransforms:latest \
0 commit comments