[dpdk-dev] [PATCH v6 1/1] ci: Introduce travis builds for github repositories

Thomas Monjalon thomas at monjalon.net
Wed Mar 20 17:01:24 CET 2019


Hi,

04/03/2019 17:12, Michael Santana:
>  .ci/linux-build.sh                  | 21 +++++++++
>  .ci/linux-setup.sh                  |  3 ++
>  .travis.yml                         | 73 +++++++++++++++++++++++++++++

Please, could you explain somewhere what is the relationship
between these files?
What is specific to Travis?
What is specific to GitHub?

May we add "travis-" as filename prefix of the scripts?
Or rename .ci to .travis?

> +++ b/.ci/linux-build.sh
> @@ -0,0 +1,21 @@
> +#!/bin/bash -xe

If possible, I would prefer a simple /bin/sh.

> +function on_error() {
> +    FILES_TO_PRINT=( "build/meson-logs/testlog.txt" "build/.ninja_log" "build/meson-logs/meson-log.txt")
> +
> +    for pr_file in "${FILES_TO_PRINT[@]}"; do

You can make FILES_TO_PRINT as a simple word list,
and so avoid bashism.

[...]
> +if [ "${AARCH64}" == "1" ]; then

Please explain in the comment where this variable comes from.
I suggest renaming it to ARMV8 as this is what it is translated to:

> +    # convert the arch specifier
> +    OPTS="${OPTS} -DRTE_ARCH_64=1 --cross-file config/arm/arm64_armv8_linuxapp_gcc"

I think -DRTE_ARCH_64=1 is useless.

> +fi
> +
> +OPTS="$OPTS --default-library=$DEF_LIB"
> +meson build --werror -Dexamples=all ${OPTS}
> +ninja -C build
[...]
> --- /dev/null
> +++ b/.travis.yml
> @@ -0,0 +1,73 @@
> +language: c
> +compiler:
> +  - gcc
> +  - clang
> +
> +dist: xenial

Are we going to update the distribution frequently?
Why not adding more distros?

> +os:
> +  - linux

Is it possible to run on FreeBSD?

> +addons:
> +  apt:
> +    update: true
> +    packages:
> +      - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
> +
> +before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
> +
> +sudo: false
> +
> +env:
> +  - DEF_LIB="static"
> +  - DEF_LIB="shared"
> +  - DEF_LIB="static" OPTS="-Denable_kmods=false"
> +  - DEF_LIB="shared" OPTS="-Denable_kmods=false"

How is it different of the matrix below?
Why testing disabling kmods?

> +
> +matrix:
> +  include:
> +  - env: DEF_LIB="static" OPTS="-Denable_kmods=false" AARCH64=1
> +    compiler: gcc
> +    addons:
> +      apt:
> +        packages:
> +          - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
> +          - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross]

Why packages are repeated here again?
(sorry, I don't know Travis and I want to understand)

> +  - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" AARCH64=1
> +    compiler: gcc
> +    addons:
> +      apt:
> +        packages:
> +          - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
> +          - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross]
> +  - env: DEF_LIB="static"
> +    compiler: gcc
> +    addons:
> +      apt:
> +        packages:
> +          - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
> +          - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
> +  - env: DEF_LIB="shared"
> +    compiler: gcc
> +    addons:
> +      apt:
> +        packages:
> +          - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
> +          - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
> +  - env: DEF_LIB="static" OPTS="-Denable_kmods=false"
> +    compiler: gcc
> +    addons:
> +      apt:
> +        packages:
> +          - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
> +          - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
> +  - env: DEF_LIB="shared" OPTS="-Denable_kmods=false"
> +    compiler: gcc
> +    addons:
> +      apt:
> +        packages:
> +          - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
> +          - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]

It seems clang is not in the matrix. Why?

Thanks for this v6.
I will be available to follow more closely in next days,
so we can merge this feature soon this week.




More information about the dev mailing list