bug-gnulib
[Top][All Lists]
Advanced

[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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]