1 |
Hi, |
2 |
|
3 |
I have some experience with CI and am willing to help out, I'll talk to you |
4 |
on IRC. |
5 |
|
6 |
Mathy |
7 |
|
8 |
On Dec 7, 2016 19:57, "Michał Górny" <mgorny@g.o> wrote: |
9 |
|
10 |
> Hello, everyone. |
11 |
> |
12 |
> TL;DR: I'm looking for some help to get pull-request CI running |
13 |
> distributed, i.e. on multiple hosts. |
14 |
> |
15 |
> |
16 |
> Quick history |
17 |
> ------------- |
18 |
> |
19 |
> The repo-mirror-ci project pretty much started as a simple cronjob |
20 |
> running on hardware contributed to the purpose by Todd Goodman |
21 |
> (considering how much this hardware has done for Gentoo, I'd suggest |
22 |
> giving him a honorary citizenship of Gentoo or something like |
23 |
> that ;-)). I can't say they were terrible but they weren't perfect |
24 |
> either. Due to lack of time, I mostly focused on improving them |
25 |
> moderately and adding new features. |
26 |
> |
27 |
> Today, everything is still running on the same hardware. While |
28 |
> the hardware is real good, and I'm doing some effort to improve |
29 |
> the performance of the tools, I think it's quite close to its limits. |
30 |
> |
31 |
> Right now, it is running three tasks every 20 minutes: updating repo |
32 |
> mirrors, running pkgcheck on Gentoo and processing one pull request. |
33 |
> However, if those tasks delay beyond those 20 minutes, the poor man's |
34 |
> scheduling based on cron + lockfiles may cause some of the executions |
35 |
> to be skipped. |
36 |
> |
37 |
> In other words, the best case is processing 3 pull requests / h. This |
38 |
> is starting to be no longer sufficient, and causing significant delays |
39 |
> during periods of high contributor activity -- while my goal would be to |
40 |
> provide the results ASAP -- 10-20 minutes would be perfect. |
41 |
> |
42 |
> |
43 |
> The goal and needs |
44 |
> ------------------ |
45 |
> |
46 |
> I think the best way forward would be to start distributing tasks |
47 |
> between more systems. While I don't really have time to make whole |
48 |
> repo-mirror-ci distributed, I think it should be feasible to start |
49 |
> splitting pull request processing out of it. |
50 |
> |
51 |
> I would use some help to achieve that, esp. wrt distributed task |
52 |
> scheduling. |
53 |
> |
54 |
> Can you think of any tools that could help me get the task done easily |
55 |
> and with as little of reinventing the wheel as possible? Right now, I |
56 |
> have just a lot of trivial shell script that checks pull request for |
57 |
> changes, checks them out, runs 'pmaint regen', pkgcheck, publishes all |
58 |
> kinds of results and statuses, and also compares QA results to |
59 |
> determine new failures created by the PR [1]. |
60 |
> |
61 |
> As I see it, checking for changes and submitting the results should |
62 |
> stay on the current host. However, it should be able to run all |
63 |
> the actual work on slaves and retrieve the results from them. I would |
64 |
> appreciate all the help with implementing that, plus possibly some |
65 |
> degree of control to make it possible to update pkgcheck on slaves |
66 |
> easily. |
67 |
> |
68 |
> Please let me know if you're interested in helping. Thanks. |
69 |
> |
70 |
> [1]:https://bitbucket.org/mgorny/repo-mirror-ci/src/ |
71 |
> master/pull-requests.job |
72 |
> |
73 |
> -- |
74 |
> Best regards, |
75 |
> Michał Górny |
76 |
> |