DPDK patches and discussions
 help / color / mirror / Atom feed
From: Aaron Conole <aconole@redhat.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Michael Santana <msantana@redhat.com>,
	dev@dpdk.org, Thomas Monjalon <thomas@monjalon.net>,
	Ferruh Yigit <ferruh.yigit@intel.com>
Subject: Re: [dpdk-dev] [PATCH] Introduce travis builds for github repositories
Date: Thu, 24 Jan 2019 13:11:36 -0500	[thread overview]
Message-ID: <f7ta7jq9b8n.fsf@dhcp-25.97.bos.redhat.com> (raw)
In-Reply-To: <20190124093547.GA155072@bricha3-MOBL.ger.corp.intel.com> (Bruce Richardson's message of "Thu, 24 Jan 2019 09:35:48 +0000")

Bruce Richardson <bruce.richardson@intel.com> writes:

> On Wed, Jan 23, 2019 at 05:07:14PM -0500, Michael Santana wrote:
>> 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@redhat.com>
>> Signed-off-by: Michael Santana <msantana@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
>
> Would calling test-meson-builds.sh be a good option here? It runs multiple
> builds rather than a single one.

Maybe it would be better to just fold in the options?  For example, we
already have support for SHARED vs STATIC builds using the standard
config.  Then all we do is change to look like:

  DEF_LIB="static"
  if [ "${SHARED}" == "1" ]; then
      DEF_LIB="shared"
  fi

  meson build --werror -Dexamples=all --default-library=${DEF_LIB}

That will build the static vs shared.  I like it because it keeps the
'matrix' build from travis (see for example,
https://travis-ci.org/orgcandman/dpdk).  Then if some build fails we can
dive into which one failed a little bit easier.  Plus,
test-meson-builds.sh requires all the various compilers be installed to
work right.  I'd rather just flesh out the ci 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
>> +
>
> Other optional packages we should consider including: libbsd, pcap,
> libcrypto, jansson, zlib.

Makes sense.

> Ideally, I suppose we'd have two setups - one with all the packages, the
> other only with the minimum.

One thing I'd really like to incorporate is a bunch of unit tests that I
can launch...


Thanks for the review, Bruce!

  parent reply	other threads:[~2019-01-24 18:11 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-23 22:07 Michael Santana
2019-01-24  9:35 ` Bruce Richardson
2019-01-24  9:41   ` Bruce Richardson
2019-01-24 18:11   ` Aaron Conole [this message]
2019-01-24 18:31     ` Bruce Richardson
2019-01-24 18:18 ` Thomas Monjalon
2019-01-24 20:02   ` Aaron Conole
2019-01-24 19:26 ` Honnappa Nagarahalli
2019-01-24 19:51   ` Michael Santana Francisco
2019-01-30 22:16 ` [dpdk-dev] [PATCH v2 0/2] Introduce travis support Michael Santana
2019-01-30 22:16   ` [dpdk-dev] [PATCH v2 1/2] examples/vhost_scsi: Don't build without virtio_scsi.h Michael Santana
2019-01-31  9:15     ` Bruce Richardson
2019-01-30 22:16   ` [dpdk-dev] [PATCH v2 2/2] ci: Introduce travis builds for github repositories Michael Santana
2019-01-31  9:25     ` Bruce Richardson
2019-01-31 16:43       ` Aaron Conole
2019-01-31 20:32         ` Bruce Richardson
2019-01-31 20:43           ` Aaron Conole
2019-02-01 16:48   ` [dpdk-dev] [PATCH v3 0/2] Introduce travis support Michael Santana
2019-02-01 16:48     ` [dpdk-dev] [PATCH v3 1/2] examples/vhost_scsi: Don't build without virtio_scsi.h Michael Santana
2019-02-01 16:48     ` [dpdk-dev] [PATCH v3 2/2] ci: Introduce travis builds for github repositories Michael Santana
2019-02-04  9:41       ` Bruce Richardson
2019-02-06 19:17       ` Honnappa Nagarahalli
2019-02-06 20:18         ` Aaron Conole
2019-02-06 22:13     ` [dpdk-dev] [PATCH v4 0/2] Introduce travis support Michael Santana
2019-02-06 22:13       ` [dpdk-dev] [PATCH v4 1/2] examples/vhost_scsi: Don't build without virtio_scsi.h Michael Santana
2019-02-06 22:13       ` [dpdk-dev] [PATCH v4 2/2] ci: Introduce travis builds for github repositories Michael Santana
2019-02-07 17:16         ` Honnappa Nagarahalli
2019-02-07 22:01       ` [dpdk-dev] [PATCH v5 0/2] Introduce travis support Michael Santana
2019-02-07 22:01         ` [dpdk-dev] [PATCH v5 1/2] examples/vhost_scsi: Don't build without virtio_scsi.h Michael Santana
2019-02-27 14:09           ` Thomas Monjalon
2019-02-07 22:01         ` [dpdk-dev] [PATCH v5 2/2] ci: Introduce travis builds for github repositories Michael Santana
2019-02-27 13:56           ` Thomas Monjalon
2019-02-27 14:35             ` Aaron Conole
2019-02-27 15:23               ` Thomas Monjalon
2019-02-27 15:53                 ` Aaron Conole
2019-02-27 16:06                   ` Luca Boccassi
2019-02-27 16:17                     ` Aaron Conole
2019-02-14 14:30         ` [dpdk-dev] [PATCH v5 0/2] Introduce travis support Michael Santana Francisco
2019-02-25 18:40         ` Aaron Conole
2019-03-04 16:12         ` [dpdk-dev] [PATCH v6 0/1] " Michael Santana
2019-03-04 16:12           ` [dpdk-dev] [PATCH v6 1/1] ci: Introduce travis builds for github repositories Michael Santana
2019-03-04 18:14             ` Luca Boccassi
2019-03-14 13:21               ` Michael Santana Francisco
2019-03-14 13:21                 ` Michael Santana Francisco
2019-03-20 16:01             ` Thomas Monjalon
2019-03-20 16:01               ` Thomas Monjalon
2019-03-20 19:28               ` Michael Santana Francisco
2019-03-20 19:28                 ` Michael Santana Francisco
2019-03-20 21:11                 ` Luca Boccassi
2019-03-20 21:11                   ` Luca Boccassi
2019-03-21 15:45                   ` Michael Santana Francisco
2019-03-21 15:45                     ` Michael Santana Francisco
2019-03-22 16:56             ` [dpdk-dev] [PATCH v7] " Michael Santana
2019-03-22 16:56               ` Michael Santana
2019-03-25 15:32               ` [dpdk-dev] [PATCH v8] " Michael Santana
2019-03-25 15:32                 ` Michael Santana
2019-03-25 16:10                 ` Thomas Monjalon
2019-03-25 16:10                   ` Thomas Monjalon
2019-03-26 21:54                   ` Thomas Monjalon
2019-03-26 21:54                     ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f7ta7jq9b8n.fsf@dhcp-25.97.bos.redhat.com \
    --to=aconole@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=msantana@redhat.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).