From patchwork Mon Mar 4 16:12:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Santana X-Patchwork-Id: 50800 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 649B94CA9; Mon, 4 Mar 2019 17:12:38 +0100 (CET) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id E88AA4C90 for ; Mon, 4 Mar 2019 17:12:36 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 58BF715553; Mon, 4 Mar 2019 16:12:36 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.18.25.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 88AB76109B; Mon, 4 Mar 2019 16:12:34 +0000 (UTC) From: Michael Santana To: dev@dpdk.org Cc: Aaron Conole , Bruce Richardson , Honnappa Nagarahalli , Thomas Monjalon Date: Mon, 4 Mar 2019 11:12:32 -0500 Message-Id: <20190304161232.5670-2-msantana@redhat.com> In-Reply-To: <20190304161232.5670-1-msantana@redhat.com> References: <20190207220114.8020-1-msantana@redhat.com> <20190304161232.5670-1-msantana@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 04 Mar 2019 16:12:36 +0000 (UTC) Subject: [dpdk-dev] [PATCH v6 1/1] ci: 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 Acked-by: Luca Boccassi --- v6: Removed all classic make builds .ci/linux-build.sh | 21 +++++++++ .ci/linux-setup.sh | 3 ++ .travis.yml | 73 +++++++++++++++++++++++++++++ MAINTAINERS | 6 +++ doc/guides/contributing/patches.rst | 4 ++ 5 files changed, 107 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 000000000..6b65ad31b --- /dev/null +++ b/.ci/linux-build.sh @@ -0,0 +1,21 @@ +#!/bin/bash -xe + +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 + if [ -e "$pr_file" ]; then + cat "$pr_file" + fi + done +} +trap on_error ERR + +if [ "${AARCH64}" == "1" ]; then + # convert the arch specifier + OPTS="${OPTS} -DRTE_ARCH_64=1 --cross-file config/arm/arm64_armv8_linuxapp_gcc" +fi + +OPTS="$OPTS --default-library=$DEF_LIB" +meson build --werror -Dexamples=all ${OPTS} +ninja -C build diff --git a/.ci/linux-setup.sh b/.ci/linux-setup.sh new file mode 100755 index 000000000..63502c90a --- /dev/null +++ b/.ci/linux-setup.sh @@ -0,0 +1,3 @@ + #!/bin/bash + +python3 -m pip install --upgrade meson --user diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..b0ab00a9d --- /dev/null +++ b/.travis.yml @@ -0,0 +1,73 @@ +language: c +compiler: + - gcc + - clang + +dist: xenial + +os: + - linux + +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" + +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] + - 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] + + +script: ./.ci/${TRAVIS_OS_NAME}-build.sh diff --git a/MAINTAINERS b/MAINTAINERS index 15c53888c..e4b9a8e00 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: doc/guides/rel_notes/deprecation.rst diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst index 211a5cdc7..22a9039e8 100644 --- a/doc/guides/contributing/patches.rst +++ b/doc/guides/contributing/patches.rst @@ -32,6 +32,10 @@ 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 GitHub +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.