summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml133
-rw-r--r--build.sh23
2 files changed, 149 insertions, 7 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 000000000..af67f4786
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,133 @@
+sudo: required
+language: bash
+services: docker
+language: generic
+
+before_script:
+ - sudo apt-get -y install qemu-user-static
+ - sudo -E docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
+ - (cd .. && git clone https://github.com/estesp/manifest-tool)
+ - (cd ../manifest-tool && sudo -E make && sudo -E make install)
+
+jobs:
+ include:
+ - stage: build functest-core images
+ script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs=""
+ - aarch64_dirs="docker/core"
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/core"
+ - aarch64_dirs=""
+ - stage: publish functest-core manifests
+ script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm64 \
+ --template ${DOCKER_USERNAME}/functest-core:x86_64-latest \
+ --template ${DOCKER_USERNAME}/functest-core:aarch64-latest \
+ --target ${DOCKER_USERNAME}/functest-core:latest
+ - stage: build all functest images
+ script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs=""
+ - aarch64_dirs="docker/healthcheck"
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs=""
+ - aarch64_dirs="docker/smoke"
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs=""
+ - aarch64_dirs="docker/features"
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs=""
+ - aarch64_dirs="docker/components"
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/healthcheck"
+ - aarch64_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/smoke"
+ - aarch64_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/features"
+ - aarch64_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/components"
+ - aarch64_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/vnf"
+ - aarch64_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/restapi"
+ - aarch64_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - repo="${DOCKER_USERNAME}"
+ - x86_64_dirs="docker/parser"
+ - aarch64_dirs=""
+ - stage: publish all manifests
+ script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm64 \
+ --template ${DOCKER_USERNAME}/functest-healthcheck:x86_64-latest \
+ --template ${DOCKER_USERNAME}/functest-healthcheck:aarch64-latest \
+ --target ${DOCKER_USERNAME}/functest-healthcheck:latest
+ - script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm64 \
+ --template ${DOCKER_USERNAME}/functest-healthcheck:x86_64-latest \
+ --template ${DOCKER_USERNAME}/functest-healthcheck:aarch64-latest \
+ --target ${DOCKER_USERNAME}/functest-healthcheck:latest
+ - script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm64 \
+ --template ${DOCKER_USERNAME}/functest-smoke:x86_64-latest \
+ --template ${DOCKER_USERNAME}/functest-smoke:aarch64-latest \
+ --target ${DOCKER_USERNAME}/functest-smoke:latest
+ - script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm64 \
+ --template ${DOCKER_USERNAME}/functest-features:x86_64-latest \
+ --template ${DOCKER_USERNAME}/functest-features:aarch64-latest \
+ --target ${DOCKER_USERNAME}/functest-features:latest
+ - script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm64 \
+ --template ${DOCKER_USERNAME}/functest-components:x86_64-latest \
+ --template ${DOCKER_USERNAME}/functest-components:aarch64-latest \
+ --target ${DOCKER_USERNAME}/functest-components:latest
+ - script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64 \
+ --template ${DOCKER_USERNAME}/functest-vnf:x86_64-latest \
+ --target ${DOCKER_USERNAME}/functest-vnf:latest
+ - script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64 \
+ --template ${DOCKER_USERNAME}/functest-restapi:x86_64-latest \
+ --target ${DOCKER_USERNAME}/functest-restapi:latest
+ - script: >
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64 \
+ --template ${DOCKER_USERNAME}/functest-parser:x86_64-latest \
+ --target ${DOCKER_USERNAME}/functest-parser:latest
diff --git a/build.sh b/build.sh
index 18d2e58de..3b46cb06e 100644
--- a/build.sh
+++ b/build.sh
@@ -3,7 +3,7 @@
set -e
repo=${repo:-opnfv}
-dirs="\
+x86_64_dirs=${x86_64_dirs-"\
docker/core \
docker/healthcheck \
docker/smoke \
@@ -11,14 +11,23 @@ docker/features \
docker/components \
docker/vnf \
docker/parser \
-docker/restapi"
+docker/restapi"}
+aarch64_dirs=${aarch64_dirs-$(echo "${x86_64_dirs}" | sed -e "s|docker/vnf||" \
+ -e "s|docker/restapi||")}
-(cd docker && docker build -t "${repo}/functest" .)
-docker push "${repo}/functest"
+find . -name Dockerfile -exec sed -i -e "s|opnfv/functest-core|${repo}/functest-core:x86_64-latest|g" {} +
+for dir in ${x86_64_dirs}; do
+ (cd "${dir}" && docker build -t "${repo}/functest-${dir##**/}:x86_64-latest" .)
+ docker push "${repo}/functest-${dir##**/}:x86_64-latest"
+done
+find . -name Dockerfile -exec git checkout {} +
-for dir in ${dirs}; do
- (cd ${dir} && docker build -t "${repo}/functest-${dir##**/}" .)
- docker push "${repo}/functest-${dir##**/}"
+find . -name Dockerfile -exec sed -i -e "s|alpine:3.6|multiarch/alpine:aarch64-v3.6|g" {} +
+find . -name Dockerfile -exec sed -i -e "s|opnfv/functest-core|${repo}/functest-core:aarch64-latest|g" {} +
+for dir in ${aarch64_dirs}; do
+ (cd "${dir}" && docker build -t "${repo}/functest-${dir##**/}:aarch64-latest" .)
+ docker push "${repo}/functest-${dir##**/}:aarch64-latest"
done
+find . -name Dockerfile -exec git checkout {} +
exit $?