[dpdk-dev] [PATCH] Introduce travis builds for github repositories
Honnappa Nagarahalli
Honnappa.Nagarahalli at arm.com
Thu Jan 24 20:26:49 CET 2019
>
> GitHub is a service used by developers to store repositories. GitHub
> provides service integrations that allow 3rd party services to access
> developer repositories and perform actions. One of these services is Travis-
> CI, a simple continuous integration platform.
>
> This is a simple initial implementation of a travis build for the DPDK project.
> It doesn't require any changes from individual developers to enable, but will
> allow those developers who opt-in to GitHub and the travis service to get
> automatic builds for every push they make.
>
> Additionally, the travis service will send an email to the test-report list
> informing anyone interested in the automated build (including a result).
>
> Signed-off-by: Aaron Conole <aconole at redhat.com>
> Signed-off-by: Michael Santana <msantana at redhat.com>
> ---
> .ci/linux-build.sh | 34 +++++++++++++++++++++++++
> .ci/linux-setup.sh | 3 +++
> .travis.yml | 39 +++++++++++++++++++++++++++++
> MAINTAINERS | 6 +++++
> doc/guides/contributing/patches.rst | 3 +++
> 5 files changed, 85 insertions(+)
> create mode 100755 .ci/linux-build.sh
> create mode 100755 .ci/linux-setup.sh
> create mode 100644 .travis.yml
>
> diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh new file mode 100755 index
> 0000000000..2cfaa05058
> --- /dev/null
> +++ b/.ci/linux-build.sh
> @@ -0,0 +1,34 @@
> +#!/bin/bash
> +
> +# check for whether we're clang or gcc
> +# setup the right options depending on the environment variables # run
> +the build
> +
> +# Just used for the 'classic' configuration system (ie: make)
> +set_conf() {
> + c="$1/.config"
> + shift
> +
> + if grep -q "$1" "$c"; then
> + sed -i "s:^$1=.*$:$1=$2:g" $c
> + else
> + echo $1=$2 >> "$c"
> + fi
> +}
> +
> +
> +if [ "${NINJABUILD}" == "1" ]; then
> + meson build
> + ninja -C build
> +else
> + make config T=x86_64-native-linuxapp-${CC}
Adding Arm builds would be helpful.
> + if [ "${SHARED}" == "1" ]; then
> + set_conf build CONFIG_RTE_BUILD_SHARED_LIB y
> + fi
> +
> + if [ "${KERNEL}" == "1" ]; then
> + echo Unsupported kernel builds at the moment
> + fi
> +
> + make all
> +fi
> diff --git a/.ci/linux-setup.sh b/.ci/linux-setup.sh new file mode 100755 index
> 0000000000..6f9849cb94
> --- /dev/null
> +++ b/.ci/linux-setup.sh
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +
> +python3.5 -m pip install --upgrade meson --user
> diff --git a/.travis.yml b/.travis.yml
> new file mode 100644
> index 0000000000..432d6c9c6c
> --- /dev/null
> +++ b/.travis.yml
> @@ -0,0 +1,39 @@
> +language: c
> +compiler:
> + - gcc
> + - clang
> +
> +os:
> + - linux
> +
> +addons:
> + apt:
> + sources:
> + - deadsnakes #source for python 3.5
> + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2'
> + packages:
> + - libnuma-dev
> + - linux-headers-$(uname -r)
> + - python3.5
> + - python3-pip
> + - ninja-build
> +
> +before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
> +
> +sudo: false
> +
> +env:
> + - SHARED=1
> + - KERNEL=1
> + - NINJABUILD=1
> +
> +matrix:
> + include:
> + - compiler: clang
> +
> +script: ./.ci/${TRAVIS_OS_NAME}-build.sh
> +
> +notifications:
> + email:
> + recipients:
> + - test-report at dpdk.org
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 66104405e5..14a7bf1284 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -119,6 +119,12 @@ F: config/rte_config.h
> F: buildtools/gen-pmdinfo-cfile.sh
> F: buildtools/symlink-drivers-solibs.sh
>
> +Public CI
> +M: Aaron Conole <aconole at redhat.com>
> +M: Michael Santana <msantana at redhat.com>
> +F: .travis.yml
> +F: .ci/
> +
> ABI versioning
> M: Neil Horman <nhorman at tuxdriver.com>
> F: lib/librte_compat/
> diff --git a/doc/guides/contributing/patches.rst
> b/doc/guides/contributing/patches.rst
> index a64bb03683..745a11a67a 100644
> --- a/doc/guides/contributing/patches.rst
> +++ b/doc/guides/contributing/patches.rst
> @@ -32,6 +32,9 @@ The mailing list for DPDK development is
> `dev at dpdk.org <http://mails.dpdk.org/ar Contributors will need to
> `register for the mailing list <http://mails.dpdk.org/listinfo/dev>`_ in order
> to submit patches.
> It is also worth registering for the DPDK `Patchwork
> <http://patches.dpdk.org/project/dpdk/list/>`_
>
> +If you are using the GitHub service, you can link your repository to
> +the ``travis-ci.org`` build service. When you push patches to your
> repository, the travis service will automatically build your changes.
> +
> The development process requires some familiarity with the ``git`` version
> control system.
> Refer to the `Pro Git Book <http://www.git-scm.com/book/>`_ for further
> information.
>
> --
> 2.19.1
More information about the dev
mailing list