aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml100
-rw-r--r--build.sh22
-rw-r--r--docker/healthcheck/Dockerfile4
3 files changed, 106 insertions, 20 deletions
diff --git a/.travis.yml b/.travis.yml
index 46ea017d..aa8a2b67 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,76 +9,140 @@ addons:
- libssl1.0.0
before_script:
+ - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- sudo add-apt-repository -y ppa:deadsnakes/ppa
- sudo apt-get update
- sudo apt-get install python3.8 python3.8-dev python3.8-distutils
- sudo pip install tox
- - sudo -E docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
+ - docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
- (cd .. && git clone https://github.com/estesp/manifest-tool)
- (cd ../manifest-tool && git checkout v0.9.0)
- - (cd ../manifest-tool && sudo -E make && sudo -E make install)
+ - (cd ../manifest-tool && make && sudo make install)
jobs:
include:
- stage: run unit tests
script: tox -e pep8,pylint,yamllint,ansiblelint,bashate,py38,bandit
- - stage: build functest-kubernetes-core image
- script: sudo -E bash build.sh
+ - stage: build functest-kubernetes-core images
+ script: bash build.sh
env:
- REPO="${DOCKER_USERNAME}"
- amd64_dirs="docker/core"
+ - arm_dirs=""
- arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs="docker/core"
+ - arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs=""
+ - arm64_dirs="docker/core"
- stage: publish functest-kubernetes-core manifests
script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
+ manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm,linux/arm64 \
--template ${DOCKER_USERNAME}/functest-kubernetes-core:ARCH-latest \
--target ${DOCKER_USERNAME}/functest-kubernetes-core:latest
- stage: build functest-kubernetes-[healthcheck,cnf,security] images
- script: sudo -E bash build.sh
+ script: bash build.sh
env:
- REPO="${DOCKER_USERNAME}"
- amd64_dirs="docker/healthcheck"
+ - arm_dirs=""
- arm64_dirs=""
- - script: sudo -E bash build.sh
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs="docker/healthcheck"
+ - arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs=""
+ - arm64_dirs="docker/healthcheck"
+ - script: bash build.sh
env:
- REPO="${DOCKER_USERNAME}"
- amd64_dirs="docker/cnf"
+ - arm_dirs=""
- arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs="docker/cnf"
+ - arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
- arm_dirs=""
- - script: sudo -E bash build.sh
+ - arm64_dirs="docker/cnf"
+ - script: bash build.sh
env:
- REPO="${DOCKER_USERNAME}"
- amd64_dirs="docker/security"
+ - arm_dirs=""
- arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs="docker/security"
+ - arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
- arm_dirs=""
+ - arm64_dirs="docker/security"
- stage: publish functest-kubernetes-[healthcheck,cnf,security] manifests
script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
+ manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm,linux/arm64 \
--template \
${DOCKER_USERNAME}/functest-kubernetes-healthcheck:ARCH-latest \
--target ${DOCKER_USERNAME}/functest-kubernetes-healthcheck:latest
- script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
+ manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm,linux/arm64 \
--template ${DOCKER_USERNAME}/functest-kubernetes-cnf:ARCH-latest \
--target ${DOCKER_USERNAME}/functest-kubernetes-cnf:latest
- script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
+ manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm,linux/arm64 \
--template \
${DOCKER_USERNAME}/functest-kubernetes-security:ARCH-latest \
--target ${DOCKER_USERNAME}/functest-kubernetes-security:latest
- stage: build functest-kubernetes-smoke image
- script: sudo -E bash build.sh
+ script: bash build.sh
env:
- REPO="${DOCKER_USERNAME}"
- amd64_dirs="docker/smoke"
+ - arm_dirs=""
+ - arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs="docker/smoke"
- arm64_dirs=""
+ - script: bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm_dirs=""
+ - arm64_dirs="docker/smoke"
- stage: publish functest-kubernetes-smoke manifests
script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
+ manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm,linux/arm64 \
--template ${DOCKER_USERNAME}/functest-kubernetes-smoke:ARCH-latest \
--target ${DOCKER_USERNAME}/functest-kubernetes-smoke:latest
diff --git a/build.sh b/build.sh
index c5f8eeb5..ac5acfce 100644
--- a/build.sh
+++ b/build.sh
@@ -9,6 +9,7 @@ docker/healthcheck \
docker/smoke \
docker/cnf \
docker/security"}
+arm_dirs=${arm_dirs-${amd64_dirs}}
arm64_dirs=${arm64_dirs-${amd64_dirs}}
build_opts=(--pull=true --no-cache --force-rm=true)
@@ -54,4 +55,25 @@ done
arm64v8/golang:1.14-alpine3.12 || true)
find . -name Dockerfile -exec git checkout {} +
+find . -name Dockerfile -exec sed -i \
+ -e "s|golang:1.14-alpine3.12|arm32v7/golang:1.14-alpine3.12|g" {} +
+find . -name Dockerfile -exec sed -i \
+ -e "s|opnfv/functest-kubernetes-core|\
+${repo}/functest-kubernetes-core:arm-latest|g" {} +
+find . -name Dockerfile -exec sed -i \
+ -e "s|opnfv/functest-kubernetes-healthcheck|\
+${repo}/functest-kubernetes-healthcheck:arm-latest|g" {} +
+for dir in ${arm_dirs}; do
+ (cd "${dir}" && docker build "${build_opts[@]}" \
+ -t "${repo}/functest-kubernetes-${dir##**/}:arm-latest" .)
+ docker push "${repo}/functest-kubernetes-${dir##**/}:arm-latest"
+ [ "${dir}" != "docker/core" ] &&
+ (docker rmi \
+ "${repo}/functest-kubernetes-${dir##**/}:arm-latest" || true)
+done
+[ ! -z "${arm_dirs}" ] &&
+ (docker rmi "${repo}/functest-kubernetes-core:arm-latest" \
+ arm32v7/golang:1.14-alpine3.12 || true)
+find . -name Dockerfile -exec git checkout {} +
+
exit $?
diff --git a/docker/healthcheck/Dockerfile b/docker/healthcheck/Dockerfile
index 1467f857..1413aa61 100644
--- a/docker/healthcheck/Dockerfile
+++ b/docker/healthcheck/Dockerfile
@@ -11,8 +11,8 @@ RUN apk --no-cache add --update make bash git \
(cd /src/k8s.io/kubernetes && \
git fetch --tags https://github.com/kubernetes/kubernetes $K8S_TAG && \
git checkout FETCH_HEAD && \
- make kubectl ginkgo && \
- make WHAT=test/e2e/e2e.test && \
+ make kubectl ginkgo GOFLAGS=-v && \
+ make WHAT=test/e2e/e2e.test GOFLAGS=-v && \
mv _output/bin/* /usr/local/bin) && \
rm -r /src/k8s.io && \
apk del .build-deps