@@ -2,13 +2,67 @@ version: 2
2
2
jobs :
3
3
build_pytest :
4
4
machine :
5
- image : circleci/classic:201808-01
5
+ image : ubuntu-2004:202107-02
6
6
working_directory : /tmp/src/nitransforms
7
7
environment :
8
8
TZ : " /usr/share/zoneinfo/America/Los_Angeles"
9
9
FS_LICENSE : " /tmp/fslicense/license.txt"
10
10
11
11
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 '[email protected] '
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
+
12
66
- restore_cache :
13
67
keys :
14
68
- build-v1-{{ .Branch }}-{{ epoch }}
@@ -40,17 +94,13 @@ jobs:
40
94
docker tag ubuntu:xenial-20200114 localhost:5000/ubuntu
41
95
docker push localhost:5000/ubuntu
42
96
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"
49
97
- run :
50
98
name : Build Docker image & push to registry
51
99
no_output_timeout : 60m
52
100
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
54
104
e=1 && for i in {1..5}; do
55
105
docker build --rm --cache-from=nitransforms:latest \
56
106
-t nitransforms:latest \
73
123
- run :
74
124
name : Check version packaged in Docker image
75
125
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
77
129
THISVERSION=${CIRCLE_TAG:-$(python3 setup.py --version)}
78
130
INSTALLED_VERSION=$(\
79
131
docker run -it --rm --entrypoint=python nitransforms \
@@ -87,29 +139,6 @@ jobs:
87
139
mkdir -p /tmp/fslicense
88
140
cd /tmp/fslicense
89
141
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
113
142
- run :
114
143
name : Get codecov
115
144
command : python -m pip install codecov
@@ -119,7 +148,7 @@ jobs:
119
148
command : |
120
149
mkdir -p $PWD/{artifacts,summaries}
121
150
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 \
123
152
-e COVERAGE_FILE=/tmp/summaries/.pytest.coverage \
124
153
-v /tmp/fslicense/license.txt:/opt/freesurfer/license.txt:ro \
125
154
-v ${PWD}:/tmp nitransforms:latest \
0 commit comments