Gentoo Archives: gentoo-alt

From: Michael Haubenwallner <haubi@g.o>
To: Sam Pfeiffer <sammypfeiffer@×××××.com>
Cc: gentoo-alt@l.g.o
Subject: [gentoo-alt] Re: 'Continuous Integration' for Gentoo Prefix?
Date: Mon, 26 Nov 2018 09:53:15
Message-Id: cc182ea4-d931-77d2-e35e-d13b5b68581d@gentoo.org
In Reply to: Re: [gentoo-alt] 'Continuous Integration' for Gentoo Prefix? by Fabian Groffen
1 Hi Sam,
2
3 On 11/26/2018 09:11 AM, Fabian Groffen wrote:
4 <snip intro>
5
6 >> Given my particular annoyance of the 32bit system (and noting that my hosts are
7 >> 64bits, as is the standard nowadays) I found that I can use either:
8 >>
9 >> * [2]https://github.com/docker-32bit/ubuntu a 32bit Ubuntu Docker image
10 >>
11 >> * [3]https://github.com/gentoo/gentoo-docker-images stage3-x86 32bit Gentoo
12 >> Docker image
13 >>
14 >> And then execute the build step of Docker with:
15 >>
16 >> setarch i686 docker build -t my_bootstrapping_gentoo_prefix_32b_image .
17 >>
18 >> Which will trick any program trying to do uname -m to assume 32bit machine.
19 >> (Previously I used the variable CHOST=i686-pc-linux-gnu for bootstrapping, but I
20 >> found some problems, which didn't appear with this method).
21 >
22 > Hmmm.
23
24 On 64bit machines, one can use 'linux32' to trick the autodetection into 32bit:
25 $ uname -m
26 x86_64
27 $ linux32 uname -m
28 i686
29
30 >> Once I have all this setup working nicely, I'd like to trigger rebuilds every X
31 >> time, and on changes on main players (or all dependencies actually) of my setup,
32 >> like the bootstrapping of Gentoo Prefix (Ideally, on every change of a part of
33 >> the system just trigger a rebuild from that point on, Docker layers make this
34 >> possible).
35 >
36 > This may be a bit too much, but you could start from every day
37 > (LATEST_TREE_YES), or we can see to building a tar more frequently from
38 > rsync0.
39 >
40 >> With Azure announcing unlimited minutes on CI/CD for open source projects: 
41 >>
42 >> [4]https://azure.microsoft.com/en-us/blog/announcing-azure-pipelines-with-unlimited-ci-cd-minutes-for-open-source/
43
44 Nice, wasn't aware of that one!
45
46 >>
47 >> Even bootstrapping Gentoo prefix, with pieces of software like gcc taking very
48 >> long to compile, is possible.
49 >
50 > I'm still missing the infra to administer this, but I have a wrapper
51 > script to bootstrap-prefix.sh (I'm sure others (haubi?) have too) to do
52 > an unattended bootstrap. I want this to run automatically on some boxes
53 > I have, but some of them will take several days to complete.
54 > Another thing is for a bootstrapped prefix to periodically emerge --sync
55 > and emerge -Dua world. Add on top of that detecting which packages have
56 > keywords for said prefix and installing them, and we should be able to
57 > be notice breakage rather sooner than later.
58
59 Yes, I do have a buildbot setup within the company I'm working at,
60 but unfortunately I don't have the time to inspect the results and
61 fix upcoming problems on a regular base.
62 Beyond that, I cannot open the buildbot-master to the public, but
63 I believe I could share build results if we had some public place
64 to store them.
65
66 Anyway - the Prefix buildbot slaves here are doing a clean bootstrap
67 (with LATEST_TREE_YES=1, noninteractive) once per week, and an emerge
68 update/deep/world once per day. The list of "KEYWORD (hosts)" here is:
69 ppc-aix (AIX 6.1/64bit, AIX 7.1/64bit)
70 x86_64-cygwin (Windows Server 2012)
71 sparc-solaris (Solaris 10/64bit)
72 x86-linux (SLES11.1/64bit, SLES12.0/64bit, RHEL7.1/64bit, RHEL6.2/64bit)
73 amd64-linux (Gentoo/64bit)
74
75 Also, I do have need for Prefix Guest only, no RAP here - but there should be
76 hardware resources left to perform both builds.
77
78 >> The point is: I have been trying to build Gentoo Prefix during the last days
79 >> after a few months of break since the last time I touched the system. And it's
80 >> failing. I haven't managed yet to bootstrap it completely. I feel there is no
81 >> CI/CD setup to catch these issues and be able to offer a working version of
82 >> Gentoo Prefix at any time.
83 >
84 > Sorry about that. I need to make another pass over it.
85
86 Indeed - only the 64bit (Cygwin & Linux) ones were succeeding recently,
87 all the 32bit ones failed.
88
89 >> I was going to build it for myself (cause I need it), but instead, I'd like to
90 >> offer my help to build it for the community. At least offer as an option
91 >> ready-to-use /tmp/gentoo EPREFIX'ed built Gentoo Prefix from a Docker image,
92 >> just copy the full folder structure, do the softlink, and you are ready to play
93 >> with Gentoo. If you mess up anything, just re-deploy.
94 >>
95 >> To do this I'd need a bit of help as I'm quite new to Gentoo and I tend to get
96 >> blocked on little issues that take a while to google or debug (specially with
97 >> the long compilation times of the bootstrap and some big packages).
98 >>
99 >> I've posted a short issue in the Docker repo of Gentoo images about this
100 >> ([5]https://github.com/gentoo/gentoo-docker-images/issues/62) but I think the
101 >> maintainers probably don't usually work with Gentoo Prefix.
102 >
103 > I'm not very familiar myself with Docker (mostly hiding under a rock
104 > here), but I suspect the gentoo-docker-images project responds better to
105 > email to their list (as in Contributing from their README). I may be
106 > wrong though.
107 >
108 >> Thank you very much for your time, and for your open source efforts.
109 >
110 > Thanks for your efforts sofar. I hope we can pull something together.
111 > At least in the coming period I hope to be able to fix the bootstrapping
112 > issues for Solaris/OpenIndiana/Darwin.
113
114 I would love to see my buildbot slave's results somewhere in the public,
115 thank you for triggering this!
116
117 /haubi/