This is the mail archive of the
mailing list for the GCC project.
Re: GCC Buildbot
- From: R0b0t1 <r030t1 at gmail dot com>
- To: David Edelsohn <dje dot gcc at gmail dot com>
- Cc: Jeff Law <law at redhat dot com>, Paulo Matos <firstname.lastname@example.org>, GCC Development <gcc at gcc dot gnu dot org>, Sergio Durigan Junior <sergiodj at redhat dot com>
- Date: Wed, 20 Sep 2017 17:02:14 -0500
- Subject: Re: GCC Buildbot
- Authentication-results: sourceware.org; auth=none
- References: <email@example.com> <firstname.lastname@example.org> <CAGWvnymeG4pA_3SYbF_cR=zSB4zmdsjMTVOp7zivZ2=KqV_0Cg@mail.gmail.com>
On Wed, Sep 20, 2017 at 10:12 AM, David Edelsohn <email@example.com> wrote:
> On Wed, Sep 20, 2017 at 11:07 AM, Jeff Law <firstname.lastname@example.org> wrote:
>> On 09/20/2017 09:01 AM, Paulo Matos wrote:
>>> Hi all,
>>> I am internally running buildbot for a few projects, including one for a
>>> simple gcc setup for a private port. After some discussions with David
>>> Edelsohn at the last couple of Cauldrons, who told me this might be
>>> interesting for the community in general, I have contacted Sergio DJ
>>> with a few questions on his buildbot configuration for GDB. I then
>>> stripped out his configuration and transformed it into one from GCC,
>>> with a few private additions and ported it to the most recent buildbot
>>> version nine (which is numerically 0.9.x).
>>> To make a long story short: https://gcc-buildbot.linki.tools
>>> With brief documentation in: https://linkitools.github.io/gcc-buildbot
>>> and configuration in: https://github.com/LinkiTools/gcc-buildbot
>>> Now, this is still pretty raw but it:
>>> * Configures a fedora x86_64 for C, C++ and ObjectiveC (./configure
>>> * Does an incremental build
>>> * Runs all tests
>>> * Grabs the test results and stores them as properties
>>> * Creates a tarball of the sum and log files from the testsuite
>>> directory and uploads them
>>> This mail's intention is to gauge the interest of having a buildbot for
>>> GCC. Buildbot is a generic Python framework to build a test framework so
>>> the possibilities are pretty much endless as all workflows are
>>> programmed in Python and with buildbot nine the interface is also
>>> modifiable, if required.
>>> If this is something of interest, then we will need to understand what
>>> is required, among those:
>>> - which machines we can use as workers: we certainly need more worker
>>> (previously known as slave) machines to test GCC in different
>>> - what kind of build configurations do we need and what they should do:
>>> for example, do we want to build gcc standalone against system (the one
>>> installed in the worker) binutils, glibc, etc or do we want a builder to
>>> bootstrap everything?
>>> - initially I was doing fresh builds and uploading a tarball (450Mgs)
>>> for download. This took way too long. I have moved to incremental builds
>>> with no tarball generation but if required we could do this for forced
>>> builds and/or nightly. Ideas?
>>> - We are currently running the whole testsuite for each incremental
>>> build (~40mins). If we want a faster turnaround time, we could run just
>>> an important subset of tests. Suggestions?
>>> - would we like to run anything on the compiler besides the gcc
>>> testsuite? I know Honza does, or used to do, lots of firefox builds to
>>> test LTO. Shall we build those, for example? I noticed there's a testing
>>> subpage which contains a few other libraries, should we build these?
>>> - Currently we have a force build which allows people to force a build
>>> on the worker. This requires no authentication and can certainly be
>>> abused. We can add some sort of authentication, like for example, only
>>> allow users with a gcc.gnu.org email? For now, it's not a problem.
>>> - We are building gcc for C, C++, ObjC (Which is the default). Shall we
>>> add more languages to the mix?
>>> - the gdb buildbot has a feature I have disabled (the TRY scheduler)
>>> which allows people to submit patches to the buildbot, buildbot patches
>>> the current svn version, builds and tests that. Would we want something
>>> like this?
>>> - buildbot can notify people if the build fails or if there's a test
>>> regression. Notification can be sent to IRC and email for example. What
>>> would people prefer to have as the settings for notifications?
>>> - an example of a successful build is:
>>> This build shows several Changes because between the start and finish of
>>> a build there were several new commits. Properties show among other
>>> things test results. Responsible users show the people who were involved
>>> in the changes for the build.
>>> I am sure there are lots of other questions and issues. Please let me
>>> know if you find this interesting and what you would like to see
>> I'd strongly recommend using one of the existing infrastructures. I
>> know several folks (myself included) are using Jenkins/Hudson. There's
>> little to be gained building a completely new infrastructure to manage a
> Python Buildbot is not a completely new infrastructure. It is widely
> deployed and used for many projects. LLVM utilizes a Buildbot
I would like to verify that Buildbot is reliable. I worked with a
(small) project that was using it for their builds. In my opinion
Buildbot is more approachable and easier to customize. The only
complaint I have (that applies to a few other Python projects as well,
like Scons) is that configuration is actually a script file that uses
Python syntax. In some cases this can be odd.
As to its supporting technology, Python's developers see their project
as a serious work that provides infrastructure for others. A lot of
Python projects inherit this mindset and are very stable.
I think Java-based infrastructure is starting to be underestimated and
that Jenkins is a good candidate, but someone appears to have already
done the work.