From: "Jérôme Pouiller" <jezz@sysmic.org>
To: buildroot@busybox.net
Subject: [Buildroot] [RFC] Continuous integration
Date: Mon, 28 Oct 2013 10:47:03 +0100 [thread overview]
Message-ID: <3123747.79B3Y367BF@sagittae> (raw)
In-Reply-To: <526E0937.1070902@mind.be>
On Monday 28 October 2013 07:50:31 Arnout Vandecappelle wrote:
> On 25/10/13 14:46, J?r?me Pouiller wrote:
[...]
> This idea sounds good. Unfortunately, it looks like nobody read your
> mail before the developer days so we didn't discuss this subject...
It my fault, I was late.
> > Ideally, it should be able to give test results for branches before
> > they would be merged.
>
> We'd like to keep the current workflow of committing each patch
> individually - it gives cleaner history than with merges.
I mean before they would be committed. We are agree.
> But that's
> not really relevant, because these test builds could run for each
> patch individually and report success, which indicates that it can be
> applied by Peter.
Current implementation run tests when a commit is done. You suggest to
run test as soon as patch is sent to ML.
It is a good idea but very different than current implementation. I will
need a little more time to implement this.
> > It should also detect regression and send necessary alert. It would
> > be better if it may identify commit and author of a regression.
> >
> > I begin to wrote an autobuilder that would looks like that. You can
> > sees results there : http://sysmic.org/~jezz/autobuilder/ (at
> > beginning, it was mainly for my personal needs)
> >
> > It use a set of reference configurations which normally include all
> > packages (at least as much as possible). It compute list of packages
> > and their directories, list of targets for each configuration and
> > dependencies of of each packages for each configuration. It is able
> > to compute reverse dependencies and recursive dependencies.
>
> Why all packages? If it's about testing new packages, then it should
> be tested with only the new package selected (+ any dependencies). If
> it's about testing infrastructural changes, then it should be done on
> a clean tree (which you mention below that you don't do).
Idea was to rebuild in priority new/modified packages. When there is
nothing more to do. Rebuild a package that was not modified.
> > Next, it ask to git modification time for each package directory. It
> > is able to detect couple of packages/configuration which build time
> > is older than package directory modification time.
> >
> > It compute list of packages/configuration couple and sort it : never
> > built first, modified next, a dependency modified after and finally
> > other packages, ordered by last build time. Job queue is available
> > there: http://sysmic.org/~jezz/autobuilder/jobqueue.html (/!\ 4Mo).
> >
> > It build elements of job list until change is detected on git
> > repository (in this case, it rebuild job queue).
> >
> > For performance reasons, I don't run make clean between each
> > package. I know it may be problematic for reproducibility. However,
> > script will run make clean when it is about to rebuild a package
> > that was not modified since last build and output directory had not
> > been cleaned since last build (= same package with same output
> > directory).
> >
> > Finally, it dump result. It is able to detect when a package has
> > compiled correctly, or it has failed or if a dependency has failed
> > (and in this case, it shows problematic package).
> >
> > Code is available there:
> > https://github.com/jerome-pouiller/br-continuous
>
> Do you also have a server on which to run this? Could it send out
> success/failure reports to the list (or maybe first to the author and
> a few key developers, until we're sure it works well)?
Normally, http://sysmic.org/~jezz/autobuilder/ should work, isn't? You
may also look at http://sysmic.org/~jezz/autobuilder/jobqueue.html for
job list .
--
J?r?me Pouiller, Sysmic
Embedded Linux specialist
http://www.sysmic.fr
next prev parent reply other threads:[~2013-10-28 9:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-25 12:46 [Buildroot] [RFC] Continuous integration Jérôme Pouiller
2013-10-28 6:50 ` Arnout Vandecappelle
2013-10-28 9:47 ` Jérôme Pouiller [this message]
2013-10-29 21:14 ` rjbarnet at rockwellcollins.com
2013-11-05 16:29 ` Matt Weber
2013-11-07 13:37 ` Jérôme Pouiller
2013-11-08 19:35 ` Matthew Weber
2013-11-10 11:18 ` Maxime Ripard
2013-11-11 13:53 ` Matthew Weber
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=3123747.79B3Y367BF@sagittae \
--to=jezz@sysmic.org \
--cc=buildroot@busybox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.