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:jerma|${repo}/functest-core:amd64-jerma|g" {} +
20 find . -name Dockerfile -exec sed -i \
21     -e "s|opnfv/functest-smoke:jerma|${repo}/functest-smoke:amd64-jerma|g" {} +
22 find . -name Dockerfile -exec sed -i \
23     -e "s|opnfv/functest-benchmarking:jerma|\
24 ${repo}/functest-benchmarking:amd64-jerma|g" {} +
25 for dir in ${amd64_dirs}; do
26     (cd "${dir}" &&
27         docker build "${build_opts[@]}" \
28             -t "${repo}/functest-${dir##**/}:amd64-jerma" .)
29         docker push "${repo}/functest-${dir##**/}:amd64-jerma"
30     [ "${dir}" != "docker/core" ] &&
31         (docker rmi "${repo}/functest-${dir##**/}:amd64-jerma" || true)
32 done
33 [ -n "${amd64_dirs}" ] &&
34     (docker rmi "${repo}/functest-core:amd64-jerma" alpine:3.10 || true)
35 find . -name Dockerfile -exec git checkout {} +
36
37 find . -name Dockerfile -exec sed -i \
38     -e "s|alpine:3.10|arm64v8/alpine:3.10|g" {} +
39 find . -name Dockerfile -exec sed -i \
40     -e "s|opnfv/functest-core:jerma|${repo}/functest-core:arm64-jerma|g" {} +
41 find . -name Dockerfile -exec sed -i \
42     -e "s|opnfv/functest-smoke:jerma|${repo}/functest-smoke:arm64-jerma|g" {} +
43 find . -name Dockerfile -exec sed -i \
44     -e "s|opnfv/functest-benchmarking:jerma|\
45 ${repo}/functest-benchmarking:arm64-jerma|g" {} +
46 for dir in ${arm64_dirs}; do
47     (cd "${dir}" && docker build "${build_opts[@]}" \
48         -t "${repo}/functest-${dir##**/}:arm64-jerma" .)
49     docker push "${repo}/functest-${dir##**/}:arm64-jerma"
50     [ "${dir}" != "docker/core" ] &&
51         (docker rmi "${repo}/functest-${dir##**/}:arm64-jerma" || true)
52 done
53 [ -n "${arm64_dirs}" ] &&
54     (docker rmi "${repo}/functest-core:arm64-jerma" \
55         arm64v8/alpine:3.10 || true)
56 find . -name Dockerfile -exec git checkout {} +
57
58 find . -name Dockerfile -exec sed -i \
59     -e "s|alpine:3.10|arm32v6/alpine:3.10|g" {} +
60 find . -name Dockerfile -exec sed -i \
61     -e "s|opnfv/functest-core:jerma|${repo}/functest-core:arm-jerma|g" {} +
62 find . -name Dockerfile -exec sed -i \
63     -e "s|opnfv/functest-smoke:jerma|${repo}/functest-smoke:arm-jerma|g" {} +
64 find . -name Dockerfile -exec sed -i \
65     -e "s|opnfv/functest-benchmarking:jerma|\
66 ${repo}/functest-benchmarking:arm-jerma|g" {} +
67 for dir in ${arm_dirs}; do
68     (cd "${dir}" && docker build "${build_opts[@]}" \
69         -t "${repo}/functest-${dir##**/}:arm-jerma" .)
70     docker push "${repo}/functest-${dir##**/}:arm-jerma"
71     [ "${dir}" != "docker/core" ] &&
72         (docker rmi "${repo}/functest-${dir##**/}:arm-jerma" || true)
73 done
74 [ -n "${arm_dirs}" ] &&
75     (docker rmi "${repo}/functest-core:arm-jerma" \
76         arm32v6/alpine:3.10 || true)
77 find . -name Dockerfile -exec git checkout {} +
78
79 exit $?