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