1 |
On Wed, 27 May 2020 01:28:02 -0700 |
2 |
Alec Warner <antarus@g.o> wrote: |
3 |
|
4 |
> On Wed, May 27, 2020 at 1:09 AM Brian Dolbec <dolsen@g.o> |
5 |
> wrote: |
6 |
> |
7 |
> > On Tue, 26 May 2020 20:24:56 -0700 |
8 |
> > Alec Warner <antarus@g.o> wrote: |
9 |
> > |
10 |
> > > The TL;DR is that a crack team of infra-folks[0] have been putting |
11 |
> > > together demos of CI services and things like gitlab / gitea / |
12 |
> > > gerrit and so on. |
13 |
> > > |
14 |
> > > Some of these come in combined (e.g. gitlab offers repo hosting, |
15 |
> > > code review / pull reqs, CI services, and deploy services.) Some |
16 |
> > > of these are piecemeal (e.g. gerrit has code review, zuul has CI) |
17 |
> > > and gitea offers repo-hosting but CI is separate (e.g. drone.) |
18 |
> > > |
19 |
> > > On the infra-side, I think we are pretty happy with repo-hosting |
20 |
> > > (gitolite) and repo-serving (gitweb). We are missing a CI piece |
21 |
> > > and a pull-request piece. Most of the users using PRs use either |
22 |
> > > a gitlab or github mirror. |
23 |
> > > |
24 |
> > > I think the value of CI is pretty obvious to me (and I see tons |
25 |
> > > of use cases in Infra.) We could easily build CI into our current |
26 |
> > > repository solution (e.g. gitolite.) However gitolite doesn't |
27 |
> > > really support PRs in a uniform way and so CI is mostly for |
28 |
> > > submitted code; similar to the existing ::gentoo repo CI offered |
29 |
> > > by mgorny. |
30 |
> > > |
31 |
> > > If we build a code review solution (like gitea / gerrit) would |
32 |
> > > people use it? Would you use it if you couldn't merge (because |
33 |
> > > the code review solution can't gpg sign your commits or merges) |
34 |
> > > so a tool like the existing pram tool would be needed to merge? |
35 |
> > > |
36 |
> > > -A |
37 |
> > > |
38 |
> > > [0] Mostly arzano, if I'm honest. I am just the point-y haired |
39 |
> > > manager in this effort. |
40 |
> > |
41 |
> > There are several CI systems that could be used. As for CI, my |
42 |
> > experience has been with buildbot. It would be fairly |
43 |
> > straightforward to integrate with the current gitolite/gitweb |
44 |
> > hosting. It is also extremely flexible in its capabilities, |
45 |
> > although can be difficult to master. It has a good web interface, |
46 |
> > but it can even be run via it's API's using curses, python, |
47 |
> > bash,.... There is a buildbot-travis plugin which is capable of |
48 |
> > running existing .travis file configurations. It also extends its |
49 |
> > capabilities to include custom buildbot step definitions. I have |
50 |
> > not packaged it yet for gentoo, but it is on my todo list. One of |
51 |
> > buildbot's capabilities is the ability to run tests/builds on |
52 |
> > multiple workers (different arches or whatever) both in parallel or |
53 |
> > series. It could be made to integrate with our bugzilla using the |
54 |
> > python client (pybugs was it?). |
55 |
> |
56 |
> My understanding is that CI systems are all quite similar. We have |
57 |
> configured gitlab-ci, drone, and zuul as tests and I am familiar with |
58 |
> travis-ci and buildbot from other projects. I'm less concerned about |
59 |
> this aspect tbh. I'm also not super concerned about packaging. E.g. |
60 |
> for gitlab-runner (the worker portion of gitlab-ci) we just deploy |
61 |
> upstream containers and don't package them in ::gentoo at all. Our |
62 |
> onprem gitlab is a container solution; gitea is a container solution; |
63 |
> our SSO IDP is a container solution; gerrit is currently a container |
64 |
> solution. These don't bother me (too much, ugh zuul uses zookeeper? |
65 |
> ugh.) |
66 |
> |
67 |
> The major differentiators for CI appear to be: |
68 |
> - SCM support (we currently only really care about git compatible |
69 |
> systems, but some contenders only support some providers.) |
70 |
> - builders / workers (how do they deploy). For example gitlab has a |
71 |
> container based work executor while zuul uses ansible; I suspect |
72 |
> - Authentication (ideally should support SAML or openID so we can |
73 |
> integrate with our alpha sso solution for Gentoo.) |
74 |
> - The webUI; e.g is the solution horrible to use / interact with. |
75 |
> Hard to say without a trial, IMHO. |
76 |
> |
77 |
> -A |
78 |
> |
79 |
> |
80 |
> > |
81 |
> > But that still leaves a PR/code review option. |
82 |
> > |
83 |
> > |
84 |
|
85 |
I have another buildbot version bump to 2.8.0 to do. While reading |
86 |
over the changes. There are changes to the gerrit integration |
87 |
(GerritEventLogPoller) which I did not know it had or used. |
88 |
|
89 |
There is also a change in the 2.7.0 buildbot-worker: |
90 |
|
91 |
* Command buildbot-worker create-worker now supports ipv6 address for |
92 |
buildmaster connection. |
93 |
|
94 |
I know that buildbot have been creating buildbot containers since the |
95 |
1.x series, but I've not worked with them. I am planning to learn how |
96 |
to use buildbot with containers and kubernetes. I will certainly check |
97 |
out how that worker command works. whether it is a docker or |
98 |
kubernetes command or either... |
99 |
|
100 |
|
101 |
So, buildbot may be a good option since it can integrate with gerrit |
102 |
and (I think) dynamically deploy workers in containers. So be able to |
103 |
integrate with our existing git/gitweb/bugzilla as well as github/gitlab |