7
7
steps :
8
8
- checkout :
9
9
path : /home/circleci/nipype
10
+ - setup_remote_docker
10
11
- run :
11
- name : Prune base Dockerfile in preparation for cache check
12
+ name : Generate and prune base Dockerfile in preparation for cache check
12
13
working_directory : /home/circleci/nipype/docker
13
14
command : |
14
15
mkdir -p /tmp/docker
16
+ ash ./generate_dockerfiles.sh -b
17
+
15
18
# Use the sha256 sum of the pruned Dockerfile as the cache key.
16
19
ash prune_dockerfile.sh Dockerfile.base > /tmp/docker/Dockerfile.base-pruned
17
20
- restore_cache :
29
32
- persist_to_workspace :
30
33
root : /tmp
31
34
paths :
35
+ - docker/Dockerfile.base-pruned
32
36
- docker/get_base_image.sh
33
37
34
38
@@ -37,26 +41,26 @@ jobs:
37
41
machine :
38
42
# Ubuntu 14.04 with Docker 17.10.0-ce
39
43
image : circleci/classic:201710-02
44
+ working_directory : /home/circleci/nipype
40
45
steps :
41
46
- checkout :
42
47
path : /home/circleci/nipype
43
48
- attach_workspace :
44
49
at : /tmp
45
50
- run :
46
- name : Get test dependencies
51
+ name : Get test dependencies and generate Dockerfiles
47
52
command : |
48
53
pip install --no-cache-dir codecov
54
+ make gen-dockerfiles
49
55
- run :
50
56
name : Modify Nipype version if necessary
51
- working_directory : /home/circleci/nipype
52
57
command : |
53
58
if [ "$CIRCLE_TAG" != "" ]; then
54
59
sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'$CIRCLE_TAG'/" nipype/info.py
55
60
fi
56
61
- run :
57
62
name : Get base image (pull or build)
58
63
no_output_timeout : 60m
59
- working_directory : /home/circleci/nipype
60
64
command : |
61
65
source /tmp/docker/get_base_image.sh
62
66
if [ "$GET_BASE" == "PULL" ]; then
72
76
- run :
73
77
name : Build main image (py36)
74
78
no_output_timeout : 60m
75
- working_directory : /home/circleci/nipype
76
79
command : |
77
80
e=1 && for i in {1..5}; do
78
81
docker build \
87
90
- run :
88
91
name : Build main image (py27)
89
92
no_output_timeout : 60m
90
- working_directory : /home/circleci/nipype
91
93
command : |
92
94
e=1 && for i in {1..5}; do
93
95
docker build \
@@ -151,8 +153,6 @@ jobs:
151
153
docker :
152
154
- image : docker:17.10.0-ce-git
153
155
steps :
154
- - checkout :
155
- path : /home/circleci/nipype
156
156
- setup_remote_docker
157
157
- attach_workspace :
158
158
at : /tmp
@@ -171,12 +171,10 @@ jobs:
171
171
docker push nipype/nipype:py36
172
172
docker push nipype/nipype:py27
173
173
- run :
174
- name : Prune base Dockerfile to update cache
175
- working_directory : /home/circleci/nipype/docker
174
+ name : Move pruned Dockerfile to /tmp/docker/cache directory
176
175
command : |
177
- mkdir -p /tmp/docker/cache
178
- # Use the sha256 sum of the pruned Dockerfile as the cache key.
179
- ash prune_dockerfile.sh Dockerfile.base > /tmp/docker/cache/Dockerfile.base-pruned
176
+ mkdir -p /tmp/docker/cache/
177
+ mv /tmp/docker/Dockerfile.base-pruned /tmp/docker/cache/Dockerfile.base-pruned
180
178
- save_cache :
181
179
paths :
182
180
- /tmp/docker/cache/Dockerfile.base-pruned
0 commit comments