From patchwork Wed Jan 23 22:07:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Santana X-Patchwork-Id: 50023 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6EFEB2C37; Wed, 23 Jan 2019 23:07:18 +0100 (CET) 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) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7C45CC09942B; Wed, 23 Jan 2019 22:07:15 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.18.25.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id D933C6C202; Wed, 23 Jan 2019 22:07:14 +0000 (UTC) From: Michael Santana To: dev@dpdk.org Cc: Aaron Conole , Bruce Richardson , Thomas Monjalon , Ferruh Yigit Date: Wed, 23 Jan 2019 17:07:14 -0500 Message-Id: <20190123220714.20763-1-msantana@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 23 Jan 2019 22:07:15 +0000 (UTC) Subject: [dpdk-dev] [PATCH] Introduce travis builds for github repositories X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list 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.