Publish Functest Virtual Machines
[functest.git] / build.sh
1 #!/bin/bash
2
3 set -e
4
5 repo=${REPO:-opnfv}
6 amd64_dirs=${amd64_dirs-"\
7 docker/core \
8 docker/healthcheck \
9 docker/smoke \
10 docker/benchmarking \
11 docker/vnf \
12 docker/smoke-cntt \
13 docker/benchmarking-cntt"}
14 arm_dirs=${arm_dirs-${amd64_dirs}}
15 arm64_dirs=${arm64_dirs-${amd64_dirs}}
16 build_opts=("--pull=true" --no-cache "--force-rm=true")
17
18 find . -name Dockerfile -exec sed -i \
19     -e "s|opnfv/functest-core:leguer|${repo}/functest-core:amd64-leguer|g" {} +
20 find . -name Dockerfile -exec sed -i \
21     -e "s|opnfv/functest-smoke:leguer|${repo}/functest-smoke:amd64-leguer|g" \
22     {} +
23 find . -name Dockerfile -exec sed -i \
24     -e "s|opnfv/functest-benchmarking:leguer|\
25 ${repo}/functest-benchmarking:amd64-leguer|g" {} +
26 for dir in ${amd64_dirs}; do
27     (cd "${dir}" &&
28         docker build "${build_opts[@]}" \
29             -t "${repo}/functest-${dir##**/}:amd64-leguer" .)
30         docker push "${repo}/functest-${dir##**/}:amd64-leguer"
31     [ "${dir}" != "docker/core" ] &&
32         (docker rmi "${repo}/functest-${dir##**/}:amd64-leguer" || true)
33 done
34 [ -n "${amd64_dirs}" ] &&
35     (docker rmi "${repo}/functest-core:amd64-leguer" alpine:3.12 || true)
36 find . -name Dockerfile -exec git checkout {} +
37
38 find . -name Dockerfile -exec sed -i \
39     -e "s|alpine:3.12|arm64v8/alpine:3.12|g" {} +
40 find . -name Dockerfile -exec sed -i \
41     -e "s|opnfv/functest-core:leguer|${repo}/functest-core:arm64-leguer|g" {} +
42 find . -name Dockerfile -exec sed -i \
43     -e "s|opnfv/functest-smoke:leguer|${repo}/functest-smoke:arm64-leguer|g" \
44     {} +
45 find . -name Dockerfile -exec sed -i \
46     -e "s|opnfv/functest-benchmarking:leguer|\
47 ${repo}/functest-benchmarking:arm64-leguer|g" {} +
48 for dir in ${arm64_dirs}; do
49     (cd "${dir}" && docker build "${build_opts[@]}" \
50         -t "${repo}/functest-${dir##**/}:arm64-leguer" .)
51     docker push "${repo}/functest-${dir##**/}:arm64-leguer"
52     [ "${dir}" != "docker/core" ] &&
53         (docker rmi "${repo}/functest-${dir##**/}:arm64-leguer" || true)
54 done
55 [ -n "${arm64_dirs}" ] &&
56     (docker rmi "${repo}/functest-core:arm64-leguer" \
57         arm64v8/alpine:3.12 || true)
58 find . -name Dockerfile -exec git checkout {} +
59
60 find . -name Dockerfile -exec sed -i \
61     -e "s|alpine:3.12|arm32v6/alpine:3.12|g" {} +
62 find . -name Dockerfile -exec sed -i \
63     -e "s|opnfv/functest-core:leguer|${repo}/functest-core:arm-leguer|g" {} +
64 find . -name Dockerfile -exec sed -i \
65     -e "s|opnfv/functest-smoke:leguer|${repo}/functest-smoke:arm-leguer|g" \
66     {} +
67 find . -name Dockerfile -exec sed -i \
68     -e "s|opnfv/functest-benchmarking:leguer|\
69 ${repo}/functest-benchmarking:arm-leguer|g" {} +
70 for dir in ${arm_dirs}; do
71     (cd "${dir}" && docker build "${build_opts[@]}" \
72         -t "${repo}/functest-${dir##**/}:arm-leguer" .)
73     docker push "${repo}/functest-${dir##**/}:arm-leguer"
74     [ "${dir}" != "docker/core" ] &&
75         (docker rmi "${repo}/functest-${dir##**/}:arm-leguer" || true)
76 done
77 [ -n "${arm_dirs}" ] &&
78     (docker rmi "${repo}/functest-core:arm-leguer" \
79         arm32v6/alpine:3.12 || true)
80 find . -name Dockerfile -exec git checkout {} +
81
82 exit $?