1
1
version : 2
2
2
jobs :
3
3
build :
4
- docker :
5
- - image : docker:18.05.0-ce-git
4
+ machine :
5
+ image : circleci/classic:201808-01
6
6
steps :
7
+ - restore_cache :
8
+ keys :
9
+ - build-v1-{{ .Branch }}-{{ epoch }}
10
+ - build-v1-{{ .Branch }}-
11
+ - build-v1-master-
12
+ - build-v1-
13
+ paths :
14
+ - /tmp/docker
15
+ - run :
16
+ name : Set-up a Docker registry
17
+ command : |
18
+ docker run -d -p 5000:5000 --restart=always --name=registry \
19
+ -v /tmp/docker:/var/lib/registry registry:2
20
+ - run :
21
+ name : Pull existing images
22
+ command : |
23
+ set +e
24
+ docker pull localhost:5000/neurodebian
25
+ success=$?
26
+ set -e
27
+ if [[ "$success" = "0" ]]; then
28
+ echo "Pulling from local registry"
29
+ docker tag localhost:5000/neurodebian neurodebian:stretch-non-free
30
+ docker pull localhost:5000/nipype_tutorial
31
+ docker tag localhost:5000/nipype_tutorial miykael/nipype_tutorial:latest
32
+ else
33
+ echo "Pulling from Docker Hub"
34
+ docker pull neurodebian:stretch-non-free
35
+ docker tag neurodebian:stretch-non-free localhost:5000/neurodebian
36
+ docker push localhost:5000/neurodebian
37
+ fi
38
+
7
39
- checkout
40
+ - run :
41
+ name : Build Docker image & push to registry
42
+ no_output_timeout : 60m
43
+ command : |
44
+ docker build --rm --cache-from=miykael/nipype_tutorial:latest \
45
+ -t miykael/nipype_tutorial:latest .
46
+ docker tag miykael/nipype_tutorial:latest localhost:5000/nipype_tutorial
47
+ docker push localhost:5000/nipype_tutorial
48
+ - run :
49
+ name : Docker registry garbage collection
50
+ command : |
51
+ docker exec -it registry /bin/registry garbage-collect --delete-untagged \
52
+ /etc/docker/registry/config.yml
53
+ - save_cache :
54
+ key : build-v1-{{ .Branch }}-{{ epoch }}
55
+ paths :
56
+ - /tmp/docker
57
+
8
58
test_1 :
9
- docker :
10
- - image : docker:18.05.0-ce-git
59
+ machine :
60
+ image : circleci/classic:201808-01
11
61
steps :
12
- - checkout
13
- - setup_remote_docker :
14
- docker_layer_caching : true
62
+ - restore_cache :
63
+ keys :
64
+ - build-v1-{{ .Branch }}-{{ epoch }}
65
+ - build-v1-{{ .Branch }}-
66
+ - build-v1-master-
67
+ - build-v1-
68
+ paths :
69
+ - /tmp/docker
15
70
- run :
16
- name : docker build 1
17
- no_output_timeout : 60m
71
+ name : Set-up a Docker registry & pull
18
72
command : |
19
- docker build -t miykael/nipype_tutorial:$(echo $CIRCLE_BRANCH | sed 's|/|_|g') .
73
+ docker run -d -p 5000:5000 --restart=always --name=registry \
74
+ -v /tmp/docker:/var/lib/registry registry:2
75
+ docker pull localhost:5000/nipype_tutorial
76
+ docker tag localhost:5000/nipype_tutorial miykael/nipype_tutorial:latest
20
77
- run :
21
78
name : run tests 1
22
79
no_output_timeout : 120m
23
80
command : |
24
- docker run -it --rm miykael/nipype_tutorial:$(echo $CIRCLE_BRANCH | sed 's|/|_|g') python /home/neuro/nipype_tutorial/test_notebooks.py 1
81
+ docker run -it --rm miykael/nipype_tutorial:latest python /home/neuro/nipype_tutorial/test_notebooks.py 1
25
82
test_2 :
26
- docker :
27
- - image : docker:18.05.0-ce-git
83
+ machine :
84
+ image : circleci/classic:201808-01
28
85
steps :
29
- - checkout
30
- - setup_remote_docker :
31
- docker_layer_caching : true
86
+ - restore_cache :
87
+ keys :
88
+ - build-v1-{{ .Branch }}-{{ epoch }}
89
+ - build-v1-{{ .Branch }}-
90
+ - build-v1-master-
91
+ - build-v1-
92
+ paths :
93
+ - /tmp/docker
32
94
- run :
33
- name : docker build 2
34
- no_output_timeout : 60m
95
+ name : Set-up a Docker registry & pull
35
96
command : |
36
- docker build -t miykael/nipype_tutorial:$(echo $CIRCLE_BRANCH | sed 's|/|_|g') .
97
+ docker run -d -p 5000:5000 --restart=always --name=registry \
98
+ -v /tmp/docker:/var/lib/registry registry:2
99
+ docker pull localhost:5000/nipype_tutorial
100
+ docker tag localhost:5000/nipype_tutorial miykael/nipype_tutorial:latest
37
101
- run :
38
102
name : run tests 2
39
103
no_output_timeout : 120m
40
104
command : |
41
- docker run -it --rm miykael/nipype_tutorial:$(echo $CIRCLE_BRANCH | sed 's|/|_|g') python /home/neuro/nipype_tutorial/test_notebooks.py 2
105
+ docker run -it --rm miykael/nipype_tutorial:latest python /home/neuro/nipype_tutorial/test_notebooks.py 2
42
106
test_3 :
43
- docker :
44
- - image : docker:18.05.0-ce-git
107
+ machine :
108
+ image : circleci/classic:201808-01
45
109
steps :
46
- - checkout
47
- - setup_remote_docker :
48
- docker_layer_caching : true
110
+ - restore_cache :
111
+ keys :
112
+ - build-v1-{{ .Branch }}-{{ epoch }}
113
+ - build-v1-{{ .Branch }}-
114
+ - build-v1-master-
115
+ - build-v1-
116
+ paths :
117
+ - /tmp/docker
49
118
- run :
50
- name : docker build 3
51
- no_output_timeout : 60m
119
+ name : Set-up a Docker registry & pull
52
120
command : |
53
- docker build -t miykael/nipype_tutorial:$(echo $CIRCLE_BRANCH | sed 's|/|_|g') .
121
+ docker run -d -p 5000:5000 --restart=always --name=registry \
122
+ -v /tmp/docker:/var/lib/registry registry:2
123
+ docker pull localhost:5000/nipype_tutorial
124
+ docker tag localhost:5000/nipype_tutorial miykael/nipype_tutorial:latest
54
125
- run :
55
126
name : run tests 3
56
127
no_output_timeout : 120m
57
128
command : |
58
- docker run -it --rm miykael/nipype_tutorial:$(echo $CIRCLE_BRANCH | sed 's|/|_|g') python /home/neuro/nipype_tutorial/test_notebooks.py 3
129
+ docker run -it --rm miykael/nipype_tutorial:latest python /home/neuro/nipype_tutorial/test_notebooks.py 3
59
130
60
131
workflows :
61
132
version : 2
@@ -71,3 +142,23 @@ workflows:
71
142
- test_3 :
72
143
requires :
73
144
- build
145
+
146
+ nightly :
147
+ triggers :
148
+ - schedule :
149
+ cron : " 0 10 * * *"
150
+ filters :
151
+ branches :
152
+ only :
153
+ - master
154
+ jobs :
155
+ - build
156
+ - test_1 :
157
+ requires :
158
+ - build
159
+ - test_2 :
160
+ requires :
161
+ - build
162
+ - test_3 :
163
+ requires :
164
+ - build
0 commit comments