Merge ~sylvain-pineau/plainbox-provider-docker:multi-arch into plainbox-provider-docker:master

Proposed by Sylvain Pineau
Status: Merged
Approved by: Sylvain Pineau
Approved revision: a37a19f70d16fcd65c376e47b4bf63b0fb73003f
Merged at revision: d4811d783b0051aa40abeae075c1046bed78c9cb
Proposed branch: ~sylvain-pineau/plainbox-provider-docker:multi-arch
Merge into: plainbox-provider-docker:master
Diff against target: 345 lines (+44/-98)
1 file modified
units/docker.pxu (+44/-98)
Reviewer Review Type Date Requested Status
Maciej Kisielewski (community) Approve
Review via email: mp+381435@code.launchpad.net

Description of the change

Update all tests to rely on docker multi-arch support.

Tested on pi3b+ / core16 via side-loading this branch: https://pastebin.canonical.com/p/Y5ZBfCZqSf/plain/

To post a comment you must log in.
Revision history for this message
Maciej Kisielewski (kissiel) wrote :

Looks good, makes sense. +1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/units/docker.pxu b/units/docker.pxu
2index 9f18f85..e66001c 100644
3--- a/units/docker.pxu
4+++ b/units/docker.pxu
5@@ -14,23 +14,9 @@ plugin: resource
6 category_id: docker
7 _summary: Configure docker jobs
8 _description:
9- Configure arch image prefix (if needed) and docker compose command
10+ Configure docker compose command and docker inspect json fields
11 command:
12 echo arch: $SNAP_ARCH
13- case $SNAP_ARCH in
14- amd64)
15- echo 'arch_supported: yes'
16- echo 'image_prefix: '
17- ;;
18- armhf)
19- echo 'arch_supported: yes'
20- echo 'image_prefix: armhf/'
21- ;;
22- *)
23- echo "arch_supported: no"
24- echo 'image_prefix: '
25- ;;
26- esac
27 if [[ -z $SNAP ]]; then
28 echo 'compose_command: docker-compose'
29 else
30@@ -69,10 +55,8 @@ template-unit: job
31 id: docker/hello-world_{arch}
32 user: root
33 category_id: docker
34-requires:
35- snap.name == 'docker'
36- docker_resource.arch_supported == 'yes'
37-command: docker run --rm {image_prefix}hello-world
38+requires: snap.name == 'docker'
39+command: docker run --rm hello-world
40 _summary: Download and run trivial hello-world container
41 flags: simple preserve-cwd
42
43@@ -82,10 +66,8 @@ template-unit: job
44 id: docker/run_{arch}
45 user: root
46 category_id: docker
47-requires:
48- snap.name == 'docker'
49- docker_resource.arch_supported == 'yes'
50-command: docker run --rm {image_prefix}ubuntu echo 'Hello world'
51+requires: snap.name == 'docker'
52+command: docker run --rm ubuntu echo 'Hello world'
53 _summary: Download and run ubuntu container
54 flags: simple preserve-cwd
55
56@@ -95,10 +77,8 @@ template-unit: job
57 id: docker/interative_{arch}
58 user: root
59 category_id: docker
60-requires:
61- snap.name == 'docker'
62- docker_resource.arch_supported == 'yes'
63-command: docker run --rm -i {image_prefix}ubuntu bash <<< "echo 'Hello world'"
64+requires: snap.name == 'docker'
65+command: docker run --rm -i ubuntu bash <<< "echo 'Hello world'"
66 _summary: Test an interactive shell in Ubuntu container
67 flags: simple preserve-cwd
68
69@@ -108,12 +88,10 @@ template-unit: job
70 id: docker/diff_{arch}
71 user: root
72 category_id: docker
73-requires:
74- snap.name == 'docker'
75- docker_resource.arch_supported == 'yes'
76+requires: snap.name == 'docker'
77 command:
78 set -e
79- ID=$(docker run -dit {image_prefix}ubuntu mkdir /home/test)
80+ ID=$(docker run -dit ubuntu mkdir /home/test)
81 docker diff $ID | grep 'A /home/test'
82 docker rm -f $ID
83 _summary: Test changes to files in Ubuntu container
84@@ -125,12 +103,10 @@ template-unit: job
85 id: docker/copy_{arch}
86 user: root
87 category_id: docker
88-requires:
89- snap.name == 'docker'
90- docker_resource.arch_supported == 'yes'
91+requires: snap.name == 'docker'
92 command:
93 set -e
94- ID=$(docker run -dit {image_prefix}ubuntu touch /home/file)
95+ ID=$(docker run -dit ubuntu touch /home/file)
96 docker diff $ID | grep 'A /home/file'
97 #A readable&writable path for docker snap
98 file_path=/var/snap/docker/common/
99@@ -147,16 +123,14 @@ template-unit: job
100 id: docker/inspect_{arch}
101 user: root
102 category_id: docker
103-requires:
104- snap.name == 'docker'
105- docker_resource.arch_supported == 'yes'
106+requires: snap.name == 'docker'
107 command:
108 set -e
109- ID=$(docker run -dit {image_prefix}ubuntu bash)
110+ ID=$(docker run -dit ubuntu bash)
111 path=$(docker inspect -f {path} $ID)
112 image=$(docker inspect -f {image} $ID)
113 [ $path = "bash" ] || exit 1
114- [ $image = "{image_prefix}ubuntu" ] || exit 1
115+ [ $image = "ubuntu" ] || exit 1
116 docker rm -f $ID
117 _summary: Test query low-level information on a docker object
118 flags: simple preserve-cwd
119@@ -167,12 +141,10 @@ template-unit: job
120 id: docker/kill_{arch}
121 user: root
122 category_id: docker
123-requires:
124- snap.name == 'docker'
125- docker_resource.arch_supported == 'yes'
126+requires: snap.name == 'docker'
127 command:
128 set -e
129- ID=$(docker run -dit --name test {image_prefix}ubuntu bash)
130+ ID=$(docker run -dit --name test ubuntu bash)
131 docker ps --no-trunc | grep $ID
132 docker rename $ID test_2
133 docker kill test_2
134@@ -186,12 +158,10 @@ template-unit: job
135 id: docker/start-stop_{arch}
136 user: root
137 category_id: docker
138-requires:
139- snap.name == 'docker'
140- docker_resource.arch_supported == 'yes'
141+requires: snap.name == 'docker'
142 command:
143 set -e
144- ID=$(docker run -d {image_prefix}redis)
145+ ID=$(docker run -d redis)
146 [ `docker inspect -f {status} $ID` != running ] && exit 1
147 docker stop $ID
148 [ `docker wait $ID` != 0 ] && exit 1
149@@ -207,13 +177,11 @@ template-unit: job
150 id: docker/build-single_{arch}
151 user: root
152 category_id: docker
153-requires:
154- snap.name == 'docker'
155- docker_resource.arch_supported == 'yes'
156+requires: snap.name == 'docker'
157 command:
158 set -e
159 dockerfile=$(cat <<EOF
160- FROM {image_prefix}alpine
161+ FROM alpine
162 CMD echo "hello-world"
163 EOF
164 )
165@@ -231,12 +199,10 @@ template-unit: job
166 id: docker/export-and-import_{arch}
167 user: root
168 category_id: docker
169-requires:
170- snap.name == 'docker'
171- docker_resource.arch_supported == 'yes'
172+requires: snap.name == 'docker'
173 command:
174 set -e
175- ID=$(docker run -dit {image_prefix}ubuntu bash)
176+ ID=$(docker run -dit ubuntu bash)
177 #A readable&writable path for docker snap
178 tarball_file=/var/snap/docker/common/ubuntu.tar
179 docker export $ID > $tarball_file
180@@ -253,12 +219,10 @@ template-unit: job
181 id: docker/commit_{arch}
182 user: root
183 category_id: docker
184-requires:
185- snap.name == 'docker'
186- docker_resource.arch_supported == 'yes'
187+requires: snap.name == 'docker'
188 command:
189 set -e
190- ID=$(docker run -dit --name test {image_prefix}ubuntu mkdir /home/test)
191+ ID=$(docker run -dit --name test ubuntu mkdir /home/test)
192 docker commit $ID ubuntu-plainbox
193 docker images | grep 'ubuntu-plainbox'
194 docker run ubuntu [ -d /home/test ] && exit 1 || echo 'Directory not found'
195@@ -274,13 +238,11 @@ template-unit: job
196 id: docker/save-and-load_{arch}
197 user: root
198 category_id: docker
199-requires:
200- snap.name == 'docker'
201- docker_resource.arch_supported == 'yes'
202+requires: snap.name == 'docker'
203 command:
204 set -e
205- docker pull {image_prefix}ubuntu
206- docker save {image_prefix}ubuntu > /var/snap/docker/common/ubuntu.tar
207+ docker pull ubuntu
208+ docker save ubuntu > /var/snap/docker/common/ubuntu.tar
209 docker load < /var/snap/docker/common/ubuntu.tar
210 docker images -a | grep ubuntu
211 _summary: Test docker save and load a docker image
212@@ -292,16 +254,14 @@ template-unit: job
213 id: docker/compose-single_{arch}
214 user: root
215 category_id: docker
216-requires:
217- snap.name == 'docker'
218- docker_resource.arch_supported == 'yes'
219+requires: snap.name == 'docker'
220 command:
221 export -n PYTHONHOME PYTHONUSERBASE PYTHONPATH
222 set -e
223 #A readable&writable path for docker snap
224 compose_file=/var/snap/docker/common/docker-compose.yaml
225 echo "test:
226- image: {image_prefix}ubuntu
227+ image: ubuntu
228 command: bash
229 tty: true" > $compose_file
230 {compose_command} -f $compose_file up -d
231@@ -319,9 +279,7 @@ template-unit: job
232 id: docker/compose-and-basic_{arch}
233 user: root
234 category_id: docker
235-requires:
236- snap.name == 'docker'
237- docker_resource.arch_supported == 'yes'
238+requires: snap.name == 'docker'
239 command:
240 export -n PYTHONHOME PYTHONUSERBASE PYTHONPATH
241 set -e
242@@ -360,9 +318,7 @@ template-unit: job
243 id: docker/deploy-registry_{arch}
244 user: root
245 category_id: docker
246-requires:
247- snap.name == 'docker'
248- docker_resource.arch_supported == 'yes'
249+requires: snap.name == 'docker'
250 command:
251 set -e
252 #A readable&writable path for docker snap
253@@ -375,11 +331,11 @@ command:
254 -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
255 -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
256 registry:2
257- docker pull {image_prefix}ubuntu
258- docker tag ubuntu localhost:5000/{image_prefix}ubuntu
259+ docker pull ubuntu
260+ docker tag ubuntu localhost:5000/ubuntu
261 docker login --username user --password passwd localhost:5000
262- docker push localhost:5000/{image_prefix}ubuntu
263- docker pull localhost:5000/{image_prefix}ubuntu
264+ docker push localhost:5000/ubuntu
265+ docker pull localhost:5000/ubuntu
266 docker stop registry
267 docker rm -v registry
268 _summary: Deploy a registry server and run it on localhost
269@@ -391,13 +347,11 @@ template-unit: job
270 id: docker/restart-on-failure_{arch}
271 user: root
272 category_id: docker
273-requires:
274- snap.name == 'docker'
275- docker_resource.arch_supported == 'yes'
276+requires: snap.name == 'docker'
277 command:
278 set -e
279 dockerfile=$(cat <<EOF
280- FROM {image_prefix}ubuntu
281+ FROM ubuntu
282 CMD sleep 1; exit 1
283 EOF
284 )
285@@ -420,13 +374,11 @@ template-unit: job
286 id: docker/restart-always_{arch}
287 user: root
288 category_id: docker
289-requires:
290- snap.name == 'docker'
291- docker_resource.arch_supported == 'yes'
292+requires: snap.name == 'docker'
293 command:
294 set -e
295 dockerfile=$(cat <<EOF
296- FROM {image_prefix}ubuntu
297+ FROM ubuntu
298 CMD sleep 1
299 EOF
300 )
301@@ -447,12 +399,10 @@ template-unit: job
302 id: docker/update_{arch}
303 user: root
304 category_id: docker
305-requires:
306- snap.name == 'docker'
307- docker_resource.arch_supported == 'yes'
308+requires: snap.name == 'docker'
309 command:
310 set -e
311- ID=$(docker run --restart always -dit {image_prefix}ubuntu bash)
312+ ID=$(docker run --restart always -dit ubuntu bash)
313 restartPolicy=$(docker inspect -f {restartPolicy} $ID)
314 [ $restartPolicy = always ] || exit 1
315 docker update --restart=no $ID
316@@ -468,16 +418,14 @@ template-unit: job
317 id: docker/compose-restart_{arch}
318 user: root
319 category_id: docker
320-requires:
321- snap.name == 'docker'
322- docker_resource.arch_supported == 'yes'
323+requires: snap.name == 'docker'
324 command:
325 export -n PYTHONHOME PYTHONUSERBASE PYTHONPATH
326 set -e
327 #A readable&writable path for docker snap
328 compose_file=/var/snap/docker/common/docker-compose.yaml
329 echo "test:
330- image: {image_prefix}ubuntu
331+ image: ubuntu
332 command: sleep 1
333 restart: always" > $compose_file
334 {compose_command} -f $compose_file up -d
335@@ -497,9 +445,7 @@ template-unit: job
336 id: docker/edgex_compose_{arch}
337 user: root
338 category_id: docker
339-requires:
340- snap.name == 'docker'
341- docker_resource.arch_supported == 'yes'
342+requires: snap.name == 'docker'
343 command:
344 export -n PYTHONHOME PYTHONUSERBASE PYTHONPATH
345 set -ex

Subscribers

People subscribed via source and target branches

to all changes: