diff mbox

[rdma-core] Add a .travis.yml file

Message ID 1475105337-18002-1-git-send-email-jgunthorpe@obsidianresearch.com (mailing list archive)
State Accepted
Headers show

Commit Message

Jason Gunthorpe Sept. 28, 2016, 11:28 p.m. UTC
Necessary to use the Travis CI service.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
---
 .travis.yml | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 .travis.yml

Now that travis is enabled on repo, we need a yml file to make it run.

Here is a basic one.

I don't test with distros as old as precise and I don't expect that glibc to
be new enough to build this (eg missing timerfd, O_CLOEXEC, etc), and the
cmake certainly isn't. So we use the trusty 'beta' environment and install
gcc 6.2.

See it in action:

https://github.com/linux-rdma/rdma-core/pull/7

Comments

Doug Ledford Sept. 29, 2016, 3:20 p.m. UTC | #1
On 9/28/16 7:28 PM, Jason Gunthorpe wrote:
> Necessary to use the Travis CI service.
> 
> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
> ---
>  .travis.yml | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>  create mode 100644 .travis.yml
> 
> Now that travis is enabled on repo, we need a yml file to make it run.
> 
> Here is a basic one.
> 
> I don't test with distros as old as precise and I don't expect that glibc to
> be new enough to build this (eg missing timerfd, O_CLOEXEC, etc), and the
> cmake certainly isn't. So we use the trusty 'beta' environment and install
> gcc 6.2.
> 
> See it in action:
> 
> https://github.com/linux-rdma/rdma-core/pull/7

Merged, thanks.
Jason Gunthorpe Sept. 29, 2016, 4:25 p.m. UTC | #2
On Thu, Sep 29, 2016 at 11:20:08AM -0400, Doug Ledford wrote:
> > https://github.com/linux-rdma/rdma-core/pull/7
> 
> Merged, thanks.

FWIW, I updated the docker stuff in my preview tree to approximate
what travis does:

docker/do_docker.py pkg travis

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Leon Romanovsky Oct. 5, 2016, 11:51 a.m. UTC | #3
On Wed, Sep 28, 2016 at 05:28:57PM -0600, Jason Gunthorpe wrote:
> Necessary to use the Travis CI service.
>
> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
> ---
>  .travis.yml | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>  create mode 100644 .travis.yml
>
> Now that travis is enabled on repo, we need a yml file to make it run.
>
> Here is a basic one.
>
> I don't test with distros as old as precise and I don't expect that glibc to
> be new enough to build this (eg missing timerfd, O_CLOEXEC, etc), and the
> cmake certainly isn't. So we use the trusty 'beta' environment and install
> gcc 6.2.

I'm using 16.04 and it has gcc 5.4.0 as a default. Don't you think that
6.2 is too "new" for us and other distributions?

➜  linux-rdma git:(master) gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Thanks
Jason Gunthorpe Oct. 5, 2016, 4:32 p.m. UTC | #4
On Wed, Oct 05, 2016 at 02:51:32PM +0300, Leon Romanovsky wrote:

> I'm using 16.04 and it has gcc 5.4.0 as a default. Don't you think that
> 6.2 is too "new" for us and other distributions?

I don't understand how a compiler can be too new? The next round of
rolling release distros are likely to use this compiler, and those are
the distros that will first pick to up rdma-core.

> gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609

This is exactly why the automatic builds should run the latest
compiler, because people are not going to install it on their desktop.

People will test with older compilers on their own. If we want to run
automatic tests from travis with old compilers we can, but my results
basically show that older compilers are just buggy and produce
incorrect warnings.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bart Van Assche Oct. 5, 2016, 4:39 p.m. UTC | #5
On 10/05/2016 04:51 AM, Leon Romanovsky wrote:
> On Wed, Sep 28, 2016 at 05:28:57PM -0600, Jason Gunthorpe wrote:
>> Necessary to use the Travis CI service.
>>
>> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
>> ---
>>  .travis.yml | 28 ++++++++++++++++++++++++++++
>>  1 file changed, 28 insertions(+)
>>  create mode 100644 .travis.yml
>>
>> Now that travis is enabled on repo, we need a yml file to make it run.
>>
>> Here is a basic one.
>>
>> I don't test with distros as old as precise and I don't expect that glibc to
>> be new enough to build this (eg missing timerfd, O_CLOEXEC, etc), and the
>> cmake certainly isn't. So we use the trusty 'beta' environment and install
>> gcc 6.2.
>
> I'm using 16.04 and it has gcc 5.4.0 as a default. Don't you think that
> 6.2 is too "new" for us and other distributions?

Hi Leon,

The rolling release distro that is running on my laptop includes gcc 6.2.1.

Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Leon Romanovsky Oct. 6, 2016, 4:53 a.m. UTC | #6
On Wed, Oct 05, 2016 at 10:32:50AM -0600, Jason Gunthorpe wrote:
> On Wed, Oct 05, 2016 at 02:51:32PM +0300, Leon Romanovsky wrote:
>
> > I'm using 16.04 and it has gcc 5.4.0 as a default. Don't you think that
> > 6.2 is too "new" for us and other distributions?
>
> I don't understand how a compiler can be too new? The next round of
> rolling release distros are likely to use this compiler, and those are
> the distros that will first pick to up rdma-core.

I have an issue in front of my eyes where kernel fails to build with old
gcc version, while new gcc version works.

I don't want the same situation here.

>
> > gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609
>
> This is exactly why the automatic builds should run the latest
> compiler, because people are not going to install it on their desktop.
>
> People will test with older compilers on their own. If we want to run
> automatic tests from travis with old compilers we can, but my results
> basically show that older compilers are just buggy and produce
> incorrect warnings.

My experience shows the same, however I want to minimize the test burden
on the users.

>
> Jason
Leon Romanovsky Oct. 6, 2016, 4:58 a.m. UTC | #7
On Wed, Oct 05, 2016 at 09:39:42AM -0700, Bart Van Assche wrote:
> On 10/05/2016 04:51 AM, Leon Romanovsky wrote:
> >On Wed, Sep 28, 2016 at 05:28:57PM -0600, Jason Gunthorpe wrote:
> >>Necessary to use the Travis CI service.
> >>
> >>Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
> >>---
> >> .travis.yml | 28 ++++++++++++++++++++++++++++
> >> 1 file changed, 28 insertions(+)
> >> create mode 100644 .travis.yml
> >>
> >>Now that travis is enabled on repo, we need a yml file to make it run.
> >>
> >>Here is a basic one.
> >>
> >>I don't test with distros as old as precise and I don't expect that glibc to
> >>be new enough to build this (eg missing timerfd, O_CLOEXEC, etc), and the
> >>cmake certainly isn't. So we use the trusty 'beta' environment and install
> >>gcc 6.2.
> >
> >I'm using 16.04 and it has gcc 5.4.0 as a default. Don't you think that
> >6.2 is too "new" for us and other distributions?
>
> Hi Leon,
>
> The rolling release distro that is running on my laptop includes gcc 6.2.1.

I'm not sure if there are many users of this bundle who are running
rolling distros.

Anyway, let's start from the simple (one, latest gcc) and increase
complexity later on.

>
> Bart.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jason Gunthorpe Oct. 6, 2016, 4:10 p.m. UTC | #8
On Thu, Oct 06, 2016 at 07:53:37AM +0300, Leon Romanovsky wrote:

> > I don't understand how a compiler can be too new? The next round of
> > rolling release distros are likely to use this compiler, and those are
> > the distros that will first pick to up rdma-core.
> 
> I have an issue in front of my eyes where kernel fails to build with old
> gcc version, while new gcc version works.

Heh, last week I had the opposite..

> My experience shows the same, however I want to minimize the test burden
> on the users.

IMHO, it is more valuable to run a build on the full distro stack than
to try and inject old compiler variations into travis. Old system
libraries are just as likely to fail a build as the compiler.

I don't have any way to do that automatically. IMHO Travis is not able to
handle that sort of workload.

Perhaps a pre-release pass through OBS or something like it is the answer here?

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Leon Romanovsky Oct. 6, 2016, 5:52 p.m. UTC | #9
On Thu, Oct 06, 2016 at 10:10:09AM -0600, Jason Gunthorpe wrote:
> On Thu, Oct 06, 2016 at 07:53:37AM +0300, Leon Romanovsky wrote:
>
> > > I don't understand how a compiler can be too new? The next round of
> > > rolling release distros are likely to use this compiler, and those are
> > > the distros that will first pick to up rdma-core.
> >
> > I have an issue in front of my eyes where kernel fails to build with old
> > gcc version, while new gcc version works.
>
> Heh, last week I had the opposite..
>
> > My experience shows the same, however I want to minimize the test burden
> > on the users.
>
> IMHO, it is more valuable to run a build on the full distro stack than
> to try and inject old compiler variations into travis. Old system
> libraries are just as likely to fail a build as the compiler.
>
> I don't have any way to do that automatically. IMHO Travis is not able to
> handle that sort of workload.
>
> Perhaps a pre-release pass through OBS or something like it is the answer here?

Yeah,
Let's start simple and sort it later on.

>
> Jason
diff mbox

Patch

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 000000000000..e09dd32ffa9f
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,28 @@ 
+language: c
+# We need at least cmake 2.12, this means we need to use trusty.
+# Precise's glibc, etc predates what we are willing to support.
+# No reason for sudo.
+sudo: required
+dist: trusty
+addons:
+  apt:
+    sources:
+      - ubuntu-toolchain-r-test
+    packages:
+      - build-essential
+      - cmake
+      - debhelper
+      - gcc
+      - gcc-6
+      - libnl-3-dev
+      - libnl-route-3-dev
+      - make
+      - ninja-build
+      - pkg-config
+      - python
+      - valgrind
+script:
+  - mkdir build
+  - cd build
+  - CC=gcc-6 cmake -GNinja ..
+  - ninja