From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80042.outbound.protection.outlook.com [40.107.8.42]) by dpdk.org (Postfix) with ESMTP id DC6A21B450 for ; Wed, 6 Feb 2019 20:17:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=73w4f8OtZ3w9d3lwjtcBQRjK0vK9oUMzTS/7jdGkmqs=; b=n76DtbZPL5o5YJ+sVRcp2xmgr4oeQqQ+rafyE8y8IEt0FQ6b346/04VOYkuYzUvUoe/wtA3bSx3+I/uTtyez+/j4VfX/nn1g3qnVVoxsZDIl2x5TT3l5W/PftB1b0FKKvjY8UbyupDQwpb5jS4qfAy0XW2M+g7bxmwkq8vtBen4= Received: from AM6PR08MB3672.eurprd08.prod.outlook.com (20.177.115.76) by AM6PR08MB4536.eurprd08.prod.outlook.com (20.179.18.207) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.17; Wed, 6 Feb 2019 19:17:37 +0000 Received: from AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::9120:87d6:b17c:fadd]) by AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::9120:87d6:b17c:fadd%3]) with mapi id 15.20.1601.016; Wed, 6 Feb 2019 19:17:37 +0000 From: Honnappa Nagarahalli To: Michael Santana , "dev@dpdk.org" CC: Aaron Conole , Bruce Richardson , "thomas@monjalon.net" , nd , Honnappa Nagarahalli , nd Thread-Topic: [PATCH v3 2/2] ci: Introduce travis builds for github repositories Thread-Index: AQHUuk3zdQ2jR99yaUitY4jOWv0mM6XTKQig Date: Wed, 6 Feb 2019 19:17:37 +0000 Message-ID: References: <20190130221602.13866-1-msantana@redhat.com> <20190201164814.11185-1-msantana@redhat.com> <20190201164814.11185-3-msantana@redhat.com> In-Reply-To: <20190201164814.11185-3-msantana@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR08MB4536; 6:qUM/GeIT1RfS4yUK/YY0JaP0nm3TDJxiw7I5jra4pPz8PN2JeGg4m1uQVieA3VcMNhLHK10Oucjg333DVsUeGwGhLMHUxJvfPbj+TYKU52GWL48dxps6BH3B/pskIHiPW1WH1CdNhUiDGjFuzGTm9By+NPtX5NvjOcSDahu5cHHLQj0ePUtrcjyWdXNAEN3hopvFWvXVRgR6xbCJK1nil38XXNJBXcf5wlUvUq+S8lbxq+NpwRahEtY0RINP8w/Z99TrM/fLZIlfe4egsNj8yhb05QqbIt1q6Roid1UQt1MDuultJo1EdxddCas4mlag8cL7GFMTzCj8NQBdTDOGxmK+gdunWwlWDW84l8uKtnTVzZ5UTDCD3I6BMeCTQdNsX7txtVHLB31hmRtb2qXQD3sKJNJHxHw06wtliMNAMAF+6tU/HyFBQECK8gmqb2Owfe6v1pyooOFiKE85AzEr2A==; 5:KpilAAzhfpJ5zlD8VUL+Tzf0S9SOwES/fshDMk7tx5kS++SCDGBKDIOHgoVZhKBpU7/yQNaZUo6NAlsdL+q5ib/Ikf4hx46tZ+pui4A2n25Jeq5ZZ5n/C+HZynY+rlMALygI0TpHwnGzQov7GiDOvpZwA1PAKh5cmdB19McIycnVq9X16pZqyidBzWB1SyP8yfL3ERyM13ikTNBQiznHHw==; 7:wnzfPVLeeNavvwCG6xe4MyfNTwNPwf+PPLe4N3Y80zQUFfUCzBFInP7NCSpB7/BKN47tSCRwrPRAKQkEQ14aMj/UR6uBnubnKDgpnBp91N/9TzF3cFl/XAaH7IpI0RKzX4+dEf8e8Kgtw4Zjah9Tmg== x-ms-office365-filtering-correlation-id: 953b885f-dea6-4de0-8576-08d68c67c1c0 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM6PR08MB4536; x-ms-traffictypediagnostic: AM6PR08MB4536: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 0940A19703 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39860400002)(396003)(366004)(136003)(13464003)(52254002)(199004)(189003)(105586002)(25786009)(19273905006)(86362001)(14454004)(72206003)(106356001)(7696005)(8936002)(478600001)(2501003)(102836004)(76176011)(81166006)(33656002)(54906003)(81156014)(8676002)(110136005)(446003)(186003)(26005)(11346002)(476003)(486006)(66066001)(68736007)(316002)(99286004)(97736004)(7736002)(229853002)(53936002)(4326008)(2906002)(30864003)(6246003)(9686003)(55016002)(71190400001)(6306002)(71200400001)(14444005)(256004)(6436002)(3846002)(6116002)(305945005)(6506007)(53546011)(74316002)(357404004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB4536; H:AM6PR08MB3672.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: jAKWJG4YmO8MczwstAX6+aODWuLI0fnbXERYL8QaU3FQeKEGFzL/Oe7r0xJqvKGVSHnIPDf+KFjs5Pde6x4nzD2ohtxjDxuSan86x+t3xaEEDEyKnLa9ZXgI7i/TXUgf/nUXxHeS0nxswPaahFyliSsZVEuzL3LLC0wq8kIsuZQf3OyZP5b/5cV2Y1blsD/SH9v5IwNdmlujxdXdRhugs8XyVWv3fpRQoPyWyayed4nRotfQeeZgukJ63PhSbW+Fyir1jpBbHF9PePIRe2DBBiBzd2Rg4C4BWgz/oW8aAYEDIW1sCDpFGBJG5FvDVPCK5xPMIOKCc0XHr1WG1EGVp4r7jqC9MhjufF9G/v00Z01GN8unTntLzXCmGw9opSs36xkKc5kTGlo6E4MS/7kOkp4OljLQ2k54958hQLottyA= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 953b885f-dea6-4de0-8576-08d68c67c1c0 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2019 19:17:37.8723 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4536 Subject: Re: [dpdk-dev] [PATCH v3 2/2] 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: , X-List-Received-Date: Wed, 06 Feb 2019 19:17:40 -0000 Hi Michael/Aaron, Thanks for adding the Arm build. I have few comments inline. > -----Original Message----- > From: Michael Santana > Sent: Friday, February 1, 2019 10:48 AM > To: dev@dpdk.org > Cc: Aaron Conole ; Bruce Richardson > ; Honnappa Nagarahalli > ; thomas@monjalon.net > Subject: [PATCH v3 2/2] ci: Introduce travis builds for github repositori= es >=20 > GitHub is a service used by developers to store repositories. GitHub pro= vides > 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. >=20 > This is a simple initial implementation of a travis build for the DPDK pr= oject. It > doesn't require any changes from individual developers to enable, but wil= l > allow those developers who opt-in to GitHub and the travis service to get > automatic builds for every push they make. >=20 > Additionally, the travis service will send an email to the test-report li= st > informing anyone interested in the automated build (including a result). >=20 > Signed-off-by: Aaron Conole > Signed-off-by: Michael Santana > --- > v3: > - Renamed ambiguous variable names and comments, including the variable > KERNEL to DISABLE_KERNEL_MODULES and comment 'source for python' to > 'Repo for python' > - Removed duplicate file meson_cross_aarch64_gcc.txt. Used > arm64_armv8_linuxapp_gcc file instead >=20 > .ci/linux-build.sh | 88 +++++++++++++++ > .ci/linux-setup.sh | 31 ++++++ > .travis.yml | 159 ++++++++++++++++++++++++++++ > MAINTAINERS | 7 ++ > doc/guides/contributing/patches.rst | 4 + > 5 files changed, 289 insertions(+) > create mode 100755 .ci/linux-build.sh > create mode 100755 .ci/linux-setup.sh > create mode 100644 .travis.yml >=20 > diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh new file mode 100755= index > 000000000..7aa90822c > --- /dev/null > +++ b/.ci/linux-build.sh > @@ -0,0 +1,88 @@ > +#!/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() { > + echo "[BUILT WITH $2 SET TO $3]" > + c=3D"$1/.config" > + shift > + > + if grep -q "$1" "$c"; then > + sed -i "s:^$1=3D.*$:$1=3D$2:g" $c > + else > + echo $1=3D$2 >> "$c" > + fi > +} > + > +BUILD_ARCH=3D"x86_64-native-linuxapp-" > + > +if [ "${ARM64}" =3D=3D "1" ]; then Would be good to change the variable names from ARM64 to 'AARCH64...' > + # convert the arch specifier > + BUILD_ARCH=3D"arm64-armv8a-linuxapp-" > + ARM64_TOOL=3D"linaro-arm-tool" > + export PATH=3D$PATH:$(pwd)/${ARM64_TOOL}/bin > +fi > + > + > +if [ "${NINJABUILD}" =3D=3D "1" ]; then > + OPTS=3D"" > + > + DEF_LIB=3D"static" > + if [ "${SHARED}" =3D=3D "1" ]; then > + DEF_LIB=3D"shared" > + fi > + > + if [ "${DISABLE_KERNEL_MODULES}" =3D=3D "1" ]; then > + OPTS=3D"-Denable_kmods=3Dfalse" > + fi > + > + if [ "${ARM64}" =3D=3D "1" ]; then > + OPTS=3D"${OPTS} --cross-file config/arm/arm64_armv8_linuxapp_gcc= " > + fi > + > + OPTS=3D"$OPTS --default-library=3D$DEF_LIB" > + meson build --werror -Dexamples=3Dall ${OPTS} > + ninja -C build > +else > + EXTRA_OPTS=3D"" > + > + make config T=3D"${BUILD_ARCH}${CC}" > + > + set_conf build CONFIG_RTE_KNI_KMOD n > + set_conf build CONFIG_RTE_EAL_IGB_UIO n > + > + if dpkg --list | grep -q zlib1g ; then > + set_conf build CONFIG_RTE_LIBRTE_PMD_ZLIB y > + fi > + > + if dpkg --list | grep -q libpcap-dev ; then > + set_conf build CONFIG_RTE_PORT_PCAP y > + fi > + > + if [ "${SHARED}" =3D=3D "1" ]; then > + set_conf build CONFIG_RTE_BUILD_SHARED_LIB y > + fi > + > + if [ "${DISABLE_KERNEL_MODULES}" =3D=3D "1" ]; then > + echo Unsupported kernel builds at the moment > + fi > + > + if [ "${ARM64}" =3D=3D "1" ]; then > + EXTRA_OPTS=3D"CROSS=3Daarch64-linux-gnu-" > + > + # need to turn off these extras > + set_conf build CONFIG_RTE_PORT_PCAP n > + set_conf build CONFIG_RTE_LIBRTE_PMD_ZLIB n > + > + # convert the CC/CXX variables > + export CC=3Daarch64-linux-gnu-${CC} > + export CXX=3Daarch64-linux-gnu-${CXX} > + export AR=3Daarch64-linux-gnu-ar > + export STRIP=3Daarch64-linux-gnu-strip > + fi > + > + make all ${EXTRA_OPTS} > +fi > diff --git a/.ci/linux-setup.sh b/.ci/linux-setup.sh new file mode 100755= index > 000000000..7d6478ef9 > --- /dev/null > +++ b/.ci/linux-setup.sh > @@ -0,0 +1,31 @@ > +#!/bin/bash > + > +python3.5 -m pip install --upgrade meson --user > + > +echo "ARM64 is [ ${ARM64} ]" > + > +if [ "${ARM64}" =3D=3D "1" ]; then > + # need to build & install libnuma > + # This will only be minimal support for now. > + > ARM64_TOOL_URL=3D'https://releases.linaro.org/components/toolchain/binari > es/latest-7/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64- > linux-gnu.tar.xz' > + ARM64_TOOL=3D"linaro-arm-tool" > + NUMA_GIT_URL=3D"https://github.com/numactl/numactl.git" > + > + wget -O "${ARM64_TOOL}.tar.xz" "${ARM64_TOOL_URL}" > + tar -xf "${ARM64_TOOL}.tar.xz" > + mv gcc-linaro* "${ARM64_TOOL}" > + export PATH=3D$PATH:$(pwd)/${ARM64_TOOL}/bin > + git clone "${NUMA_GIT_URL}" > + cd numactl > + git checkout v2.0.11 > + ./autogen.sh > + autoconf -i > + mkdir numa_bin > + ./configure --host=3Daarch64-linux-gnu CC=3Daarch64-linux-gnu-gcc \ > + --prefix=3D$(pwd)/numa_bin > + make install # install numa > + cd .. > + cp numactl/numa_bin/include/numa*.h "${ARM64_TOOL}/aarch64-linux- > gnu/libc/usr/include/" > + cp numactl/numa_bin/lib/libnuma.* "${ARM64_TOOL}/aarch64-linux- > gnu/lib64/" > + cp numactl/numa_bin/lib/libnuma.* "${ARM64_TOOL}/lib/" > +fi > diff --git a/.travis.yml b/.travis.yml > new file mode 100644 > index 000000000..afd63aa33 > --- /dev/null > +++ b/.travis.yml > @@ -0,0 +1,159 @@ > +language: c > +compiler: > + - gcc > + - clang > + > +os: > + - linux > + > +addons: > + apt: > + sources: > + - deadsnakes #Repo 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=3D1 > + - DISABLE_KERNEL_MODULES=3D1 > + - SHARED=3D1 DISABLE_KERNEL_MODULES=3D1 > + - NINJABUILD=3D1 > + - NINJABUILD=3D1 SHARED=3D1 > + - NINJABUILD=3D1 DISABLE_KERNEL_MODULES=3D1 > + - NINJABUILD=3D1 SHARED=3D1 DISABLE_KERNEL_MODULES=3D1 My understanding is we need to list 'ARM64=3D1' and 'ARM64=3D1 NINJABUILD= =3D1' here. > + > +matrix: > + include: > + - env: SHARED=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: DISABLE_KERNEL_MODULES=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: SHARED=3D1 DISABLE_KERNEL_MODULES=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: SHARED=3D1 > + compiler: clang > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: DISABLE_KERNEL_MODULES=3D1 > + compiler: clang > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: SHARED=3D1 DISABLE_KERNEL_MODULES=3D1 > + compiler: clang > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: ARM64=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), libtool, > +python3.5, python3-pip] > + - env: ARM64=3D1 NINJABUILD=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [linux-headers-$(uname -r), libtool, python3.5, > +python3-pip, ninja-build] > + - env: NINJABUILD=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: NINJABUILD=3D1 SHARED=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: NINJABUILD=3D1 DISABLE_KERNEL_MODULES=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + - env: NINJABUILD=3D1 SHARED=3D1 DISABLE_KERNEL_MODULES=3D1 > + compiler: gcc > + addons: > + apt: > + sources: > + - deadsnakes #Repo for python 3.5 > + - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' > + packages: > + - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4] > + - [libnuma-dev, linux-headers-$(uname -r), python3.5, > +python3-pip, ninja-build] > + > + > +script: ./.ci/${TRAVIS_OS_NAME}-build.sh > + > +notifications: > + email: > + recipients: > + - test-report@dpdk.org > diff --git a/MAINTAINERS b/MAINTAINERS > index 835d8a201..eed6f69d3 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -119,6 +119,13 @@ F: config/rte_config.h > F: buildtools/gen-pmdinfo-cfile.sh > F: buildtools/symlink-drivers-solibs.sh >=20 > +Public CI > +M: Aaron Conole > +M: Michael Santana > +F: .travis.yml > +F: .ci/ > +F: meson_cross_aarch64_gcc.txt Not required > + > ABI versioning > M: Neil Horman > F: lib/librte_compat/ > diff --git a/doc/guides/contributing/patches.rst > b/doc/guides/contributing/patches.rst > index a64bb0368..49e930cbb 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 for the mailing list `_ in order to s= ubmit > patches. > It is also worth registering for the DPDK `Patchwork > `_ >=20 > +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 chan= ges. > + > The development process requires some familiarity with the ``git`` versi= on > control system. > Refer to the `Pro Git Book `_ for further > information. >=20 > -- > 2.20.1