From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Santana Subject: [PATCH] Introduce travis builds for github repositories Date: Wed, 23 Jan 2019 17:07:14 -0500 Message-ID: <20190123220714.20763-1-msantana@redhat.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Cc: Aaron Conole , Bruce Richardson , Thomas Monjalon , Ferruh Yigit To: dev@dpdk.org Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 2B70B2C36 for ; Wed, 23 Jan 2019 23:07:16 +0100 (CET) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Signed-off-by: Michael Santana --- .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} + 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@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 +M: Michael Santana +F: .travis.yml +F: .ci/ + ABI versioning M: Neil Horman 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@dpdk.org `_ in order to submit patches. It is also worth registering for the DPDK `Patchwork `_ +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 `_ for further information. -- 2.19.1