[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: continuous integrations
From: |
Bruno Haible |
Subject: |
Re: continuous integrations |
Date: |
Mon, 06 May 2024 18:54:01 +0200 |
Hi Simon,
> These are useful pipelines with basic build testing!
My main use of these CI pipelines are to
- find regressions caused by commits in the respective packages,
- find regressions caused by gnulib (despite upstream having gnulib
as a git submodule),
- create snapshot tarballs for GNU m4.
> I think the pattern of having the .gitlab-ci.yml outside of the core
> Savannah project is a good one for those GNU projects who are not
> embracing the GitLab platform. Then GitLab-related stuff stays on the
> GitLab platform and doesn't invade the core project.
Yes, that's one reason I put the CI outside the main repository. The
other reasons are:
- CIs will come and go over time. Whereas the source code is meant to
be stable for > 20 years.
- Maintaining CIs is a different business than developing. It can be
handled by different persons, with different skills.
- I had problems creating a git repository's mirror from Savannah at
GitLab. If we can't have a GNU package's mirror at GitLab, and of
course don't want to move the main repository away from Savannah,
that was the only option.
- There is also the possibility of having CIs on other clouds, such as
GitHub, Travis, etc. This is simpler if there is no mirroring
in-between.
> Would it make sense to collaborate on re-usable GitLab CI/CD pipeline
> definitions in a single GitLab project? Then we can apply that group
> for free CI/CD minutes and get testing on macOS/Windows too. I have a
> shared GitLab runner for native arm64 and ppc64el building, and have
> wanted to setup NetBSD/OpenBSD/FreeBSD/etc GitLab runners too.
I am currently experimenting with CI on GitHub, with the immediate goal
of testing Gnulib's testdirs on various macOS versions. (The macOS machine
in the compilefarm is not up-to-date.) This should also give FreeBSD and
Solaris 11 testing.
> Then we can apply that group for free CI/CD minutes
What do you mean by that? I've found GitLab's limit of 400 minutes per
month and top-level group limiting, and see that GitHub does not have such
a limit.
> How about using https://gitlab.com/gnulib/ as a playground for these
> ideas? Then we can add sub-projects there for pipeline definitions, and
> Savannah mirrors of other projects too.
On GitLab, the 400 minutes limit is per top-level group. Therefore, it's
better if, for each GNU package, we have a separate top-level group.
> If you can add 'jas' as
> maintainer of the 'gnulib' group on GitLab
Done.
> I could add one project to
> start work on writing re-usable pipeline definitions, and one example
> project maybe for GNU InetUtils that would use these new re-usable
> pipeline components to provide a CI/CD pipeline definition file. I
> could add some arm64/ppc64el builds of gnulib too.
The usefulness of this step depends on how much it would reduce the
frequency of the x86_64 runs (which currently are at 1/week). Most
parts of Gnulib are not arch-specific; therefore I think the minutes
are better invested in testing Alpine Linux, FreeBSD, OpenBSD, than
arm64/ppc64el.
Bruno