Can we enable CI for legacy systems?

Mojca Miklavec mojca at macports.org
Wed Jan 27 12:32:31 UTC 2021


On Mon, 25 Jan 2021 at 17:02, Ruben Di Battista
<rubendibattista at gmail.com> wrote:
>
> Hi Ryan, thanks for your answer.
>
> If I configured a server I own to run CI jobs for old systems (I was thinking about using a custom Gitlab runner libvirt https://docs.gitlab.com/runner/executors/custom_examples/libvirt.html for that and maybe), it's gonna be something useful that Macports could potentially use?

Yes, definitely.

There are a couple of independent requirements:
(a) we need the software / CI jobs definitions
(b) we need the hardware to run those jobs on
(c) ideally a not-too-complicated way to set up & fire up VMs with
different macOS versions would be really handy
    (both in terms of a set of scripts to set up a new VM, as well as
the sequence to fire up the VM / build the port / destroy the copy)

I suspect that we would be able to find some hardware somewhere once
we have the software written.
The last point sounds like most of the work.

Maybe GitLab runner isn't able to run on the oldest macOS that we
support, but if you run it on the host just to fire up a VM, that
might be ok.

I see that GitLab supports CI on top of GitHub repository:
    https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html

Maybe that's not as straightforward as if the repo was stored on
GitLab directly, but it still sounds perfectly fine if you get it
working.

Even if you just start with your own clone of the GitHub repo inside
GitLab and get it working, this would still represent some 90 % of the
job (majority of [a] and complete [c]).

> PS: Does Github Action support custom "executors" to eventually run libvirt?

I'm not so familiar with GitHub Actions, but we are currently using
buildbot for the official builds. That one certainly offers native
libvirt support:
    https://docs.buildbot.net/latest/manual/configuration/workers-libvirt.html

(Just getting the images done will likely take some non-trivial amount of time.)

Mojca


More information about the macports-dev mailing list