diff mbox series

[ovs-dev,v4] travis: Enable OvS Travis CI for arm

Message ID 1585033237-6087-1-git-send-email-Lance.Yang@arm.com
State Accepted
Delegated to: Ilya Maximets
Headers show
Series [ovs-dev,v4] travis: Enable OvS Travis CI for arm | expand

Commit Message

Lance Yang March 24, 2020, 7 a.m. UTC
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.

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

Reviewed-by: Yanqin Wei <Yanqin.Wei@arm.com>
Reviewed-by: Ruifeng Wang <Ruifeng.Wang@arm.com>
Reviewed-by: JingZhao Ni <JingZhao.Ni@arm.com>
Reviewed-by: Gavin Hu <Gavin.Hu@arm.com>
Signed-off-by: Lance Yang <Lance.Yang@arm.com>
---
v4:
   - Move TARGET variable into install_dpdk function.
   - Avoid to add SPARSE_FLAGS to CFLAGS_FOR_OVS when sparse is not
     enabled.
---
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 | 13 +++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

Comments

Ilya Maximets March 24, 2020, 11:55 p.m. UTC | #1
On 3/24/20 8:00 AM, Lance Yang wrote:
> 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.
> 
> Successful travis build jobs report:
> https://travis-ci.org/github/yzyuestc/ovs/builds/666129448
> 
> Reviewed-by: Yanqin Wei <Yanqin.Wei@arm.com>
> Reviewed-by: Ruifeng Wang <Ruifeng.Wang@arm.com>
> Reviewed-by: JingZhao Ni <JingZhao.Ni@arm.com>
> Reviewed-by: Gavin Hu <Gavin.Hu@arm.com>
> Signed-off-by: Lance Yang <Lance.Yang@arm.com>


Thanks! Applied to master.

Best regards, Ilya Maximets.
diff mbox series

Patch

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..02615a8 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -6,7 +6,6 @@  set -x
 CFLAGS_FOR_OVS="-g -O2"
 SPARSE_FLAGS=""
 EXTRA_OPTS="--enable-Werror"
-TARGET="x86_64-native-linuxapp-gcc"
 
 function install_kernel()
 {
@@ -87,6 +86,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
@@ -177,7 +186,7 @@  elif [ "$M32" ]; then
     # Adding m32 flag directly to CC to avoid any posiible issues with API/ABI
     # difference on 'configure' and 'make' stages.
     export CC="$CC -m32"
-else
+elif [ "$TRAVIS_ARCH" != "aarch64" ]; then
     OPTS="--enable-sparse"
     if [ "$AFXDP" ]; then
         # netdev-afxdp uses memset for 64M for umem initialization.