@@ -2,13 +2,67 @@ 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"
99 FS_LICENSE : " /tmp/fslicense/license.txt"
1010
1111 steps :
12+ - checkout
13+ - restore_cache :
14+ keys :
15+ - env-v3-{{ .Branch }}-
16+ - env-v3-master-
17+ - env-v3-
18+ - run :
19+ name : Setup git-annex
20+ command : |
21+ sudo apt update && sudo apt-get install apt-transport-https ca-certificates -y && sudo update-ca-certificates
22+ if [[ ! -d /opt/circleci/git-annex.linux ]]; then
23+ cd /tmp
24+ wget https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz
25+ tar xzf git-annex-standalone-amd64.tar.gz -C /opt/circleci/
26+ fi
27+ git config --global user.name 'NiPy'
28+ git config --global user.email 'nipreps@gmail.com'
29+ - run :
30+ name : Setup DataLad
31+ command : |
32+ export PY3=$(pyenv versions | grep '3\.' |
33+ sed -e 's/.* 3\./3./' -e 's/ .*//')
34+ pyenv local $PY3
35+ python -m pip install --no-cache-dir -U pip "setuptools >= 45.0" "setuptools_scm[toml] >= 3.4"
36+ python -m pip install --no-cache-dir -U datalad datalad-osf
37+
38+ - save_cache :
39+ key : env-v3-{{ .Branch }}-{{ .BuildNum }}
40+ paths :
41+ - /opt/circleci/git-annex.linux
42+ - /opt/circleci/.pyenv/versions/3.9.4
43+
44+ - restore_cache :
45+ keys :
46+ - data-v3-{{ .Branch }}-
47+ - data-v3-master-
48+ - data-v3-
49+ - run :
50+ name : Install test data from GIN
51+ command : |
52+ export PY3=$(pyenv versions | grep '3\.' |
53+ sed -e 's/.* 3\./3./' -e 's/ .*//')
54+ pyenv local $PY3
55+ export PATH=/opt/circleci/git-annex.linux:$PATH
56+ mkdir -p /tmp/data
57+ cd /tmp/data
58+ datalad install -r https://gin.g-node.org/oesteban/nitransforms-tests
59+ datalad update --merge -d ./nitransforms-tests/
60+ datalad get -r -d ./nitransforms-tests/ *
61+ - save_cache :
62+ key : data-v3-{{ .Branch }}-{{ .BuildNum }}
63+ paths :
64+ - /tmp/data
65+
1266 - restore_cache :
1367 keys :
1468 - build-v1-{{ .Branch }}-{{ epoch }}
@@ -40,17 +94,13 @@ jobs:
4094 docker tag ubuntu:xenial-20200114 localhost:5000/ubuntu
4195 docker push localhost:5000/ubuntu
4296 fi
43- - checkout
44- - run :
45- name : Prepare a Python environment
46- command : |
47- pyenv local 3.7.0
48- python3 -m pip install "setuptools >= 45.0" "setuptools_scm[toml] >= 3.4" "pip>=10.0.1"
4997 - run :
5098 name : Build Docker image & push to registry
5199 no_output_timeout : 60m
52100 command : |
53- pyenv local 3.7.0
101+ export PY3=$(pyenv versions | grep '3\.' |
102+ sed -e 's/.* 3\./3./' -e 's/ .*//')
103+ pyenv local $PY3
54104 e=1 && for i in {1..5}; do
55105 docker build --rm --cache-from=nitransforms:latest \
56106 -t nitransforms:latest \
73123 - run :
74124 name : Check version packaged in Docker image
75125 command : |
76- pyenv local 3.7.0
126+ export PY3=$(pyenv versions | grep '3\.' |
127+ sed -e 's/.* 3\./3./' -e 's/ .*//')
128+ pyenv local $PY3
77129 THISVERSION=${CIRCLE_TAG:-$(python3 setup.py --version)}
78130 INSTALLED_VERSION=$(\
79131 docker run -it --rm --entrypoint=python nitransforms \
@@ -87,29 +139,6 @@ jobs:
87139 mkdir -p /tmp/fslicense
88140 cd /tmp/fslicense
89141 echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tXG41MTcyXG4gKkN2dW12RVYzelRmZ1xuRlM1Si8yYzFhZ2c0RVxuIiA+IGxpY2Vuc2UudHh0Cg==" | base64 -d | sh
90-
91- - restore_cache :
92- keys :
93- - data-v1-{{ .Branch }}-{{ epoch }}
94- - data-v1-{{ .Branch }}-
95- - data-v1-master-
96- - data-v1-
97- paths :
98- - /tmp/data
99- - run :
100- name : Download data
101- 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"
108- fi
109- - save_cache :
110- key : data-v1-{{ .Branch }}-{{ epoch }}
111- paths :
112- - /tmp/data
113142 - run :
114143 name : Get codecov
115144 command : python -m pip install codecov
@@ -119,7 +148,7 @@ jobs:
119148 command : |
120149 mkdir -p $PWD/{artifacts,summaries}
121150 docker run -u $( id -u ) -it --rm -w /src/nitransforms \
122- -v /tmp/data:/data -e TEST_DATA_HOME=/data \
151+ -v /tmp/data/nitransforms-tests :/data -e TEST_DATA_HOME=/data \
123152 -e COVERAGE_FILE=/tmp/summaries/.pytest.coverage \
124153 -v /tmp/fslicense/license.txt:/opt/freesurfer/license.txt:ro \
125154 -v ${PWD}:/tmp nitransforms:latest \
0 commit comments