[ovs-dev] [PATCH v3]travis: Enable OvS Travis CI for arm.

Lance Yang Lance.Yang at arm.com
Thu Mar 19 07:51:38 UTC 2020


Enable part of travis jobs with gcc compiler for arm64 architecture

1. Add arm jobs into the matrix in .travis.yml configuration file
2. To enable OVS-DPDK jobs, set the build target according to
different CPU architectures
3. Temporarily disable sparse checker because of static code checking
failure on arm64

Considering the balance of the CI coverage and running time, some kernel
and DPDK jobs are removed from Arm CI. The running time increases around
by 7 minutes to 47 minutes in all.

Successful travis build jobs report:
https://travis-ci.org/github/yzyuestc/ovs/builds/663833478

Reviewed-by: Yanqin Wei <Yanqin.Wei at arm.com>
Reviewed-by: Ruifeng Wang <Ruifeng.Wang at arm.com>
Reviewed-by: JingZhao Ni <JingZhao.Ni at arm.com>
Reviewed-by: Gavin Hu <Gavin.Hu at arm.com>
Signed-off-by: Lance Yang <Lance.Yang at arm.com>
---
v3: 
   - Remove some kernel jobs: 4.18, 4.17, 4.16, 4.15, 4.14, and 4.3.
   - Remove one OvS-DPDK shared library job.
---
 .travis.yml            | 15 +++++++++++++++
 .travis/linux-build.sh | 16 ++++++++++++++--
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index ef9f867..1149758 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -51,6 +51,21 @@ matrix:
     - os: osx
       compiler: clang
       env: OPTS="--disable-ssl"
+    - arch: arm64
+      compiler: gcc
+      env: OPTS="--disable-ssl"
+    - arch: arm64
+      compiler: gcc
+      env: KERNEL_LIST="5.5 4.19"
+    - arch: arm64
+      compiler: gcc
+      env: KERNEL_LIST="4.9 3.16"
+    - arch: arm64
+      compiler: gcc
+      env: DPDK=1 OPTS="--enable-shared"
+    - arch: arm64
+      compiler: gcc
+      env: DPDK_SHARED=1
 
 script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
 
diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 359f777..3140ec9 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -6,7 +6,7 @@ set -x
 CFLAGS_FOR_OVS="-g -O2"
 SPARSE_FLAGS=""
 EXTRA_OPTS="--enable-Werror"
-TARGET="x86_64-native-linuxapp-gcc"
+TARGET=""
 
 function install_kernel()
 {
@@ -87,6 +87,16 @@ function install_dpdk()
     local DPDK_VER=$1
     local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
 
+    if [ -z "$TRAVIS_ARCH" ] ||
+       [ "$TRAVIS_ARCH" == "amd64" ]; then
+        TARGET="x86_64-native-linuxapp-gcc"
+    elif [ "$TRAVIS_ARCH" == "aarch64" ]; then
+        TARGET="arm64-armv8a-linuxapp-gcc"
+    else
+        echo "Target is unknown"
+        exit 1
+    fi
+
     if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
         # Avoid using cache for git tree build.
         rm -rf dpdk-dir
@@ -178,7 +188,9 @@ elif [ "$M32" ]; then
     # difference on 'configure' and 'make' stages.
     export CC="$CC -m32"
 else
-    OPTS="--enable-sparse"
+    if [ "$TRAVIS_ARCH" != "aarch64" ]; then
+        OPTS="--enable-sparse"
+    fi
     if [ "$AFXDP" ]; then
         # netdev-afxdp uses memset for 64M for umem initialization.
         SPARSE_FLAGS="${SPARSE_FLAGS} -Wno-memcpy-max-count"
-- 
2.7.4



More information about the dev mailing list