aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2019-04-19 20:13:38 +0200
committerCédric Ollivier <cedric.ollivier@orange.com>2019-04-21 13:55:05 +0200
commit4a23bb93144e96a4d6d145fb3718638197d0ebc3 (patch)
tree323814f40876bac342062667c122595dbb76a117
parent41b859ade7646ef8dad4ba75e5e4615e30213565 (diff)
Build arm* functest-vnf containers via travis-ci
It doesn't build juju deps if arm* as they can't be cross-compiled. Then that deps won't be built in releng on native arm64 hosts It's worth mentioning that containers have never been executed in OPNFV gates. That change allows running all other VNFs on Raspberry PI and building containers without arm build servers. Change-Id: I836a72f049e7f0e6ae704f5b829914692d5b2c09 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 0c3ae6e09acd16fc50a516975631dd6bb76b8c53)
-rw-r--r--.travis.yml14
-rw-r--r--docker/vnf/Dockerfile29
-rw-r--r--functest/opnfv_tests/vnf/epc/juju_epc.py6
3 files changed, 35 insertions, 14 deletions
diff --git a/.travis.yml b/.travis.yml
index 12a7fb632..6f164eb80 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -152,6 +152,18 @@ jobs:
- amd64_dirs="docker/vnf"
- arm64_dirs=""
- arm_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm64_dirs="docker/vnf"
+ - arm_dirs=""
+ - script: sudo -E bash build.sh
+ env:
+ - REPO="${DOCKER_USERNAME}"
+ - amd64_dirs=""
+ - arm64_dirs=""
+ - arm_dirs="docker/vnf"
- stage: publish all manifests
script: >
sudo manifest-tool push from-args \
@@ -175,6 +187,6 @@ jobs:
--target ${DOCKER_USERNAME}/functest-features:hunter
- script: >
sudo manifest-tool push from-args \
- --platforms linux/amd64 \
+ --platforms linux/amd64,linux/arm,linux/arm64 \
--template ${DOCKER_USERNAME}/functest-vnf:ARCH-hunter \
--target ${DOCKER_USERNAME}/functest-vnf:hunter
diff --git a/docker/vnf/Dockerfile b/docker/vnf/Dockerfile
index 734df7041..1abf77b3b 100644
--- a/docker/vnf/Dockerfile
+++ b/docker/vnf/Dockerfile
@@ -56,22 +56,25 @@ RUN apk --no-cache add --update \
(cd /home/opnfv/functest/data/router/opnfv-vnf-data && \
git fetch --tags https://github.com/oolorg/opnfv-vnf-data.git $VROUTER_TAG && \
git checkout FETCH_HEAD) && \
- git init /src/epc-requirements/abot_charm && \
- (cd /src/epc-requirements/abot_charm && \
- git fetch --tags https://github.com/RebacaInc/abot_charm.git $ABOT_CHARM && \
- git checkout FETCH_HEAD) && \
- python3 -m pip install --no-cache-dir --src /src -cupper-constraints.txt -cupper-constraints.opnfv.txt \
- juju-wait==$JUJU_WAIT_TAG && \
- go get -d github.com/rogpeppe/godeps && \
- (cd $GOPATH/src/github.com/rogpeppe/godeps && git checkout $GODEPS_TAG && go install -v github.com/rogpeppe/godeps) && \
- go get -d -v github.com/juju/juju/... || true && \
- (cd $GOPATH/src/github.com/juju/juju && git checkout $JUJU_TAG && godeps -u dependencies.tsv) && \
- go install -v github.com/juju/juju/... && \
- rm -r $GOPATH/src/ $GOPATH/pkg && \
+ case "$(uname -m)" in \
+ "armv7l" | "aarch64") ;; \
+ *) \
+ git init /src/epc-requirements/abot_charm && \
+ (cd /src/epc-requirements/abot_charm && \
+ git fetch --tags https://github.com/RebacaInc/abot_charm.git $ABOT_CHARM && \
+ git checkout FETCH_HEAD) && \
+ python3 -m pip install --no-cache-dir --src /src -cupper-constraints.txt -cupper-constraints.opnfv.txt \
+ juju-wait==$JUJU_WAIT_TAG && \
+ go get -d github.com/rogpeppe/godeps && \
+ (cd $GOPATH/src/github.com/rogpeppe/godeps && git checkout $GODEPS_TAG && go install -v github.com/rogpeppe/godeps) && \
+ go get -d -v github.com/juju/juju/... || true && \
+ (cd $GOPATH/src/github.com/juju/juju && git checkout $JUJU_TAG && godeps -u dependencies.tsv) && \
+ go install -v github.com/juju/juju/... && \
+ rm -r $GOPATH/src/ $GOPATH/pkg /src/epc-requirements/abot_charm/.git /root/.cache/go-build;; \
+ esac && \
(cd /src/vims-test && bundle config build.nokogiri --use-system-libraries && bundle install --system && bundle update rest-client) && \
rm -r upper-constraints.txt upper-constraints.opnfv.txt /src/vims-test/.git /src/cloudify_vims/.git /src/heat_vims/.git /src/vims-test/quaff/.git \
/src/vims-test/build-infra/.git /src/opnfv-vnf-vyos-blueprint/.git \
- /src/epc-requirements/abot_charm/.git /root/.cache/go-build \
/tmp/clearwater-heat-singlenet-deps.patch && \
apk del .build-deps
COPY testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml
diff --git a/functest/opnfv_tests/vnf/epc/juju_epc.py b/functest/opnfv_tests/vnf/epc/juju_epc.py
index 102f77d96..cbf531b6b 100644
--- a/functest/opnfv_tests/vnf/epc/juju_epc.py
+++ b/functest/opnfv_tests/vnf/epc/juju_epc.py
@@ -147,6 +147,12 @@ class JujuEpc(singlevm.VmReady2):
self.flavor_alt = None
def check_requirements(self):
+ if not os.path.exists("/src/epc-requirements/go/bin/juju"):
+ self.__logger.warn(
+ "Juju cannot be cross-compiled (arm and arm64) from the time "
+ "being")
+ self.is_skipped = True
+ self.project.clean()
if env.get('NEW_USER_ROLE').lower() == "admin":
self.__logger.warn(
"Defining NEW_USER_ROLE=admin will easily break the testcase "