On Fri, Mar 20, 2020 at 06:13:13PM +0100, Andrea Bolognani wrote: > On Tue, 2020-03-10 at 10:09 +0000, Daniel P. Berrangé wrote: > > With GitLab CI aiming to replace Jenkins and Travis for CI purposes, we > > need to expand the coverage to include native builds. This patch adds > > all the jobs currently run in Travis. Compared to Jenkins we obviously > > miss the FreeBSD jobs, but also Debian 10 and Fedora 30, but we gain the > > Ubuntu 1804 job as a substitute for Debian. > > Once again, two questions: > > * why are we replicating the jobs that already exist in Travis > CI? I get it that we eventually want to move everything over to > GitLab CI, but for the time being it looks like we're not really > gaining anything from culling jobs - we're just significantly > reducing our test coverage; > > * what's the endgame here? Are we going to rely solely on the > runners that GitLab provides for free, or are we going to plug > our own runners into the infrastructure? Because the former > would severely limit our test coverage, and bring it down to a > much, much worse state than what we currently have. The goal is to consolidate everything onto GitLab CI so that we have a single source of truth for people to look at to determine build status. IOW, the end game is to eliminate both Jenkins and Travis. The only technical gaps that GitLab has compared to our current platforms are FreeBSD and macOS. Linux coverage is fine since it can run arbitrary containers. For FreeBSD we have virtual hardware we can use to provide custom runners for GitLab to enable use of VMs with FreeBSD installs. I'm not proposing to turn off the Linux Jenkins jobs just yet, as the sub-package chain builds still rely on that. The sub-packages will all need wiring up into GitLab CI too. Ultimately though there's nothing Jenkins does that we can't replicate in GitLab. We don't have an immediate solution for macOS due to the licensing issues around use of macOS, so Travis will unfortunately still be needed for that platform, but the remainder of jobs are not required. It might be possible to wire up a GitLab job that pushes the changes over to Travis, and pulls its build result back for macOS, so we still have a single viewing point, even if we still use Travis. This series has cut down on the number of cross-build jobs we're running, but my experience of looking at the results we've seen with them, is that they've almost never identified a bug we didn't already see with one for the other jobs. So I think it is reasonable to cut cross-build jobs down to focus on the important unique aspects - a 32-bit build and a big endian build. Overall we're not loosing any notable CI coverage with this series, and we'll gain an improved view of our results. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|