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