Switch to Python 3.7 and Alpine 3.10
[functest-kubernetes.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/features"}
11 arm64_dirs=${arm64_dirs-${amd64_dirs}}
12 build_opts=(--pull=true --no-cache --force-rm=true)
13
14 find . -name Dockerfile -exec sed -i \
15     -e "s|opnfv/functest-kubernetes-core|\
16 ${repo}/functest-kubernetes-core:amd64-latest|g" {} +
17 find . -name Dockerfile -exec sed -i \
18     -e "s|opnfv/functest-kubernetes-healthcheck|\
19 ${repo}/functest-kubernetes-healthcheck:amd64-latest|g" {} +
20 for dir in ${amd64_dirs}; do
21     (cd "${dir}" &&
22         docker build "${build_opts[@]}" \
23             -t "${repo}/functest-kubernetes-${dir##**/}:amd64-latest" .)
24         docker push "${repo}/functest-kubernetes-${dir##**/}:amd64-latest"
25     [ "${dir}" != "docker/core" ] &&
26         (docker rmi \
27             "${repo}/functest-kubernetes-${dir##**/}:amd64-latest" || true)
28 done
29 [ ! -z "${amd64_dirs}" ] &&
30     (docker rmi \
31         "${repo}/functest-kubernetes-core:amd64-latest" \
32         golang:alpine3.10 || true)
33 find . -name Dockerfile -exec git checkout {} +
34
35 find . -name Dockerfile -exec sed -i \
36     -e "s|golang:alpine3.10|arm64v8/golang:alpine3.10|g" {} +
37 find . -name Dockerfile -exec sed -i \
38     -e "s|opnfv/functest-kubernetes-core|\
39 ${repo}/functest-kubernetes-core:arm64-latest|g" {} +
40 find . -name Dockerfile -exec sed -i \
41     -e "s|opnfv/functest-kubernetes-healthcheck|\
42 ${repo}/functest-kubernetes-healthcheck:arm64-latest|g" {} +
43 for dir in ${arm64_dirs}; do
44     (cd "${dir}" && docker build "${build_opts[@]}" \
45         -t "${repo}/functest-kubernetes-${dir##**/}:arm64-latest" .)
46     docker push "${repo}/functest-kubernetes-${dir##**/}:arm64-latest"
47     [ "${dir}" != "docker/core" ] &&
48         (docker rmi \
49             "${repo}/functest-kubernetes-${dir##**/}:arm64-latest" || true)
50 done
51 [ ! -z "${arm64_dirs}" ] &&
52     (docker rmi "${repo}/functest-kubernetes-core:arm64-latest" \
53         arm64v8/golang:alpine3.10 || true)
54 find . -name Dockerfile -exec git checkout {} +
55
56 exit $?