On Wed, 27 May 2020 01:28:02 -0700
Alec Warner <anta...@gentoo.org> wrote:

> On Wed, May 27, 2020 at 1:09 AM Brian Dolbec <dol...@gentoo.org>
> wrote:
> 
> > On Tue, 26 May 2020 20:24:56 -0700
> > Alec Warner <anta...@gentoo.org> wrote:
> >  
> > > The TL;DR is that a crack team of infra-folks[0] have been putting
> > > together demos of CI services and things like gitlab / gitea /
> > > gerrit and so on.
> > >
> > > Some of these come in combined (e.g. gitlab offers repo hosting,
> > > code review / pull reqs, CI services, and deploy services.) Some
> > > of these are piecemeal (e.g. gerrit has code review, zuul has CI)
> > > and gitea offers repo-hosting but CI is separate (e.g. drone.)
> > >
> > > On the infra-side, I think we are pretty happy with repo-hosting
> > > (gitolite) and repo-serving (gitweb). We are missing a CI piece
> > > and a pull-request piece. Most of the users using PRs use either
> > > a gitlab or github mirror.
> > >
> > > I think the value of CI is pretty obvious to me (and I see tons
> > > of use cases in Infra.) We could easily build CI into our current
> > > repository solution (e.g. gitolite.) However gitolite doesn't
> > > really support PRs in a uniform way and so CI is mostly for
> > > submitted code; similar to the existing ::gentoo repo CI offered
> > > by mgorny.
> > >
> > > If we build a code review solution (like gitea / gerrit) would
> > > people use it? Would you use it if you couldn't merge (because
> > > the code review solution can't gpg sign your commits or merges)
> > > so a tool like the existing pram tool would be needed to merge?
> > >
> > > -A
> > >
> > > [0] Mostly arzano, if I'm honest. I am just the point-y haired
> > > manager in this effort.  
> >
> > There are several CI systems that could be used.  As for CI, my
> > experience has been with buildbot.  It would be fairly
> > straightforward to integrate with the current gitolite/gitweb
> > hosting. It is also extremely flexible in its capabilities,
> > although can be difficult to master.  It has a good web interface,
> > but it can even be run via it's API's using curses, python,
> > bash,....   There is a buildbot-travis plugin which is capable of
> > running existing .travis file configurations.  It also extends its
> > capabilities to include custom buildbot step definitions.  I have
> > not packaged it yet for gentoo, but it is on my todo list. One of
> > buildbot's capabilities is the ability to run tests/builds on
> > multiple workers (different arches or whatever) both in parallel or
> > series.  It could be made to integrate with our bugzilla using the
> > python client (pybugs was it?). 
> 
> My understanding is that CI systems are all quite similar. We have
> configured gitlab-ci, drone, and zuul as tests and I am familiar with
> travis-ci and buildbot from other projects. I'm less concerned about
> this aspect tbh. I'm also not super concerned about packaging. E.g.
> for gitlab-runner (the worker portion of gitlab-ci) we just deploy
> upstream containers and don't package them in ::gentoo at all. Our
> onprem gitlab is a container solution; gitea is a container solution;
> our SSO IDP is a container solution; gerrit is currently a container
> solution. These don't bother me (too much, ugh zuul uses zookeeper?
> ugh.)
> 
> The major differentiators for CI appear to be:
>  - SCM support (we currently only really care about git compatible
> systems, but some contenders only support some providers.)
>  - builders / workers (how do they deploy). For example gitlab has a
> container based work executor while zuul uses ansible; I suspect
>  - Authentication (ideally should support SAML or openID so we can
> integrate with our alpha sso solution for Gentoo.)
>  - The webUI; e.g is the solution horrible to use / interact with.
> Hard to say without a trial, IMHO.
> 
> -A
> 
> 
> >
> > But that still leaves a PR/code review option.
> >
> >  

I have another buildbot version bump to 2.8.0 to do.  While reading
over the changes.  There are changes to the gerrit integration
(GerritEventLogPoller) which I did not know it had or used.

There is also a change in the 2.7.0 buildbot-worker:

  * Command buildbot-worker create-worker now supports ipv6 address for
    buildmaster connection.

I know that buildbot have been creating buildbot containers since the
1.x series, but I've not worked with them.  I am planning to learn how
to use buildbot with containers and kubernetes.  I will certainly check
out how that worker command works.  whether it is a docker or
kubernetes command or either...


So, buildbot may be a good option since it can integrate with gerrit
and (I think) dynamically deploy workers in containers.  So be able to
integrate with our existing git/gitweb/bugzilla as well as github/gitlab

Reply via email to