Обсуждение: Heads Up: cirrus-ci is shutting down June 1st

Поиск
Список
Период
Сортировка

Heads Up: cirrus-ci is shutting down June 1st

От
Andres Freund
Дата:
Hi,

As the subject says, cirrus-ci, which cfbot uses to run CI and that one can
(for now) enable on one's own repository, is shutting down.

https://cirruslabs.org/ burries the lede a bit, but it has further down:
  "Cirrus CI will shut down effective Monday, June 1, 2026."

I can't say I'm terribly surprised, they had been moving a lot slower in the
last few years.

The shutdown window is pretty short, so we'll have to do something soon. Glad
that it didn't happen a few months ago, putting the shutdown before the
feature freeze. This is probably close to the least bad time it could happen
with a short window.


I think having cfbot and CI that one could run on ones own repository, without
sending a mail to the community, has improved the development process a lot.
So clearly we're going to have to do something.  I certainly could not have
done stuff like AIO without it.


I'd be interested in feedback about how high folks value different aspects:

1) CI software can be self hosted

   E.g. to prevent at least the cfbot case from being unpredictably abandoned
   again.


2) CI software is open source

   E.g. out of a principled stance, or control concerns.


3) CI runs quickly

   This matters e.g. for accepting running in containers and whether it's
   crucial to be able to have our images with everything pre-installed.


4) CI tests as many operating systems as possible

   A lot of system just support linux, plenty support macos, some support
   windows. Barely any support anything beyond that.


5) CI can be enabled on one's own repositories

   Cfbot obviously allows everyone to test patches some way, but sending patch
   sets to the list just to get a CI run obviously gets noisy quite fast.

   There are plenty of open source CI solutions, but clearly it's not viable
   for everyone to set that up for themselves. Plenty providers do allow doing
   so, but the overlap of this, open source (2), multiple platforms (4) is
   small if it exists.


6) There need to be free credits for running at least some CI on one's own
   repository

   This makes the overlapping constraints mentioned in 5) even smaller.

   There are several platforms that do provide a decent amount of CI for a
   monthly charge of < 10 USD.


7) Provide CI compute for "well known contributors" for free in their own
   repositories

   An alternative to 6) - with some CI solutions - can be to add folks to some
   team that allows them to use community resources (which so far have been
   donated).  The problem with that is that it's administratively annoying,
   because one does need to be careful, or CI will be used to do
   cryptocurrency mining or such within a few days.


For some context about how much CI we have been running, here's the daily
average for cfbot and postgres/postgres CI:

- 1464 core hours (full cores, not SMT), all CI jobs use 4 cores

- 396 core hours of which were windows (visible due to the licensing cost)

- 40 GB of artifacts

- 83 GB of artifacts downloaded externally

- doesn't include macos, which I can't track as easily, due to being self
  hosted runners, rather than running on GCP, which provided the above numbers


Greetings,

Andres Freund



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Thomas Munro
Дата:
On Fri, Apr 10, 2026 at 8:55 AM Andres Freund <andres@anarazel.de> wrote:
> 4) CI tests as many operating systems as possible
>
>    A lot of system just support linux, plenty support macos, some support
>    windows. Barely any support anything beyond that.

Nested virtualisation to the rescue?

https://github.com/cross-platform-actions/action



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Jelte Fennema-Nio
Дата:
On Thu, 9 Apr 2026 at 22:55, Andres Freund <andres@anarazel.de> wrote:
> I'd be interested in feedback about how high folks value different aspects:

My thoughts below.

> 1) CI software can be self hosted
>
>    E.g. to prevent at least the cfbot case from being unpredictably abandoned
>    again.

Low, I personally don't want to manage self hosting it. Self-hosted
software can just as easily be abandoned. i.e. I'd expect GitHub
Actions to outlive underfunded open source CI software.

> 2) CI software is open source
>
>    E.g. out of a principled stance, or control concerns.

I don't care

> 3) CI runs quickly
>
>    This matters e.g. for accepting running in containers and whether it's
>    crucial to be able to have our images with everything pre-installed.

Important. We should definitely be able to pre-install stuff for most
OSes. I think running stuff in containers would be fine.

> 4) CI tests as many operating systems as possible

I think we at minimum need linux+macos+windows. Windows is by far the
system that fails most often for me. BSDs would be good, but they
often tend to be fine if osx and linux work. Personally for me I think
on Cirrus The BSDs didn't meet the useful signal to flakiness noise
ratio (i.e. they tended to mostly break randomly for me).

> 5) CI can be enabled on one's own repositories
> ...
> 6) There need to be free credits for running at least some CI on one's own
>    repository
> ...
> 7) Provide CI compute for "well known contributors" for free in their own
>    repositories

I would say it's a hard requirement that people can run CI without
spamming the list. I don't think that necessarily has to be in
someone's own repository. e.g. having a way for committers to give
e.g. some limited number (e.g. 100) of CI hours to someone submitting
their first patch seems fairly low risk. If they continue contributing
they can receive a recurring number or unlimited access.

On Thu, 9 Apr 2026 at 22:55, Andres Freund <andres@anarazel.de> wrote:
>
> Hi,
>
> As the subject says, cirrus-ci, which cfbot uses to run CI and that one can
> (for now) enable on one's own repository, is shutting down.
>
> https://cirruslabs.org/ burries the lede a bit, but it has further down:
>   "Cirrus CI will shut down effective Monday, June 1, 2026."
>
> I can't say I'm terribly surprised, they had been moving a lot slower in the
> last few years.
>
> The shutdown window is pretty short, so we'll have to do something soon. Glad
> that it didn't happen a few months ago, putting the shutdown before the
> feature freeze. This is probably close to the least bad time it could happen
> with a short window.
>
>
> I think having cfbot and CI that one could run on ones own repository, without
> sending a mail to the community, has improved the development process a lot.
> So clearly we're going to have to do something.  I certainly could not have
> done stuff like AIO without it.
>
>
> I'd be interested in feedback about how high folks value different aspects:
>
> 1) CI software can be self hosted
>
>    E.g. to prevent at least the cfbot case from being unpredictably abandoned
>    again.
>
>
> 2) CI software is open source
>
>    E.g. out of a principled stance, or control concerns.
>
>
> 3) CI runs quickly
>
>    This matters e.g. for accepting running in containers and whether it's
>    crucial to be able to have our images with everything pre-installed.
>
>
> 4) CI tests as many operating systems as possible
>
>    A lot of system just support linux, plenty support macos, some support
>    windows. Barely any support anything beyond that.
>
>
> 5) CI can be enabled on one's own repositories
>
>    Cfbot obviously allows everyone to test patches some way, but sending patch
>    sets to the list just to get a CI run obviously gets noisy quite fast.
>
>    There are plenty of open source CI solutions, but clearly it's not viable
>    for everyone to set that up for themselves. Plenty providers do allow doing
>    so, but the overlap of this, open source (2), multiple platforms (4) is
>    small if it exists.
>
>
> 6) There need to be free credits for running at least some CI on one's own
>    repository
>
>    This makes the overlapping constraints mentioned in 5) even smaller.
>
>    There are several platforms that do provide a decent amount of CI for a
>    monthly charge of < 10 USD.
>
>
> 7) Provide CI compute for "well known contributors" for free in their own
>    repositories
>
>    An alternative to 6) - with some CI solutions - can be to add folks to some
>    team that allows them to use community resources (which so far have been
>    donated).  The problem with that is that it's administratively annoying,
>    because one does need to be careful, or CI will be used to do
>    cryptocurrency mining or such within a few days.
>
>
> For some context about how much CI we have been running, here's the daily
> average for cfbot and postgres/postgres CI:
>
> - 1464 core hours (full cores, not SMT), all CI jobs use 4 cores
>
> - 396 core hours of which were windows (visible due to the licensing cost)
>
> - 40 GB of artifacts
>
> - 83 GB of artifacts downloaded externally
>
> - doesn't include macos, which I can't track as easily, due to being self
>   hosted runners, rather than running on GCP, which provided the above numbers
>
>
> Greetings,
>
> Andres Freund
>
>



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Nazir Bilal Yavuz
Дата:
Hi,

On Fri, 10 Apr 2026 at 14:31, Jelte Fennema-Nio <postgres@jeltef.nl> wrote:
>
> On Thu, 9 Apr 2026 at 22:55, Andres Freund <andres@anarazel.de> wrote:
> > I'd be interested in feedback about how high folks value different aspects:
>
> My thoughts below.

I agree with all of Jelte's points except:

> > 4) CI tests as many operating systems as possible
>
> I think we at minimum need linux+macos+windows. Windows is by far the
> system that fails most often for me. BSDs would be good, but they
> often tend to be fine if osx and linux work. Personally for me I think
> on Cirrus The BSDs didn't meet the useful signal to flakiness noise
> ratio (i.e. they tended to mostly break randomly for me).

I think BSDs are quite capable of catching issues that others can't
catch. That has at least been my experience with OpenBSD.

However, I agree that OpenBSD and NetBSD tasks are flaky; I think that
is mostly because we generate these VM images from scratch (i.e. other
operating systems' VM images were already available on GCP). I don't
think FreeBSD is flaky.


-- 
Regards,
Nazir Bilal Yavuz
Microsoft



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Alexander Korotkov
Дата:
Hi!

On Thu, Apr 9, 2026 at 11:55 PM Andres Freund <andres@anarazel.de> wrote:
>
> As the subject says, cirrus-ci, which cfbot uses to run CI and that one can
> (for now) enable on one's own repository, is shutting down.
>
> https://cirruslabs.org/ burries the lede a bit, but it has further down:
>   "Cirrus CI will shut down effective Monday, June 1, 2026."
>
> I can't say I'm terribly surprised, they had been moving a lot slower in the
> last few years.
>
> The shutdown window is pretty short, so we'll have to do something soon. Glad
> that it didn't happen a few months ago, putting the shutdown before the
> feature freeze. This is probably close to the least bad time it could happen
> with a short window.


+1

>
> I think having cfbot and CI that one could run on ones own repository, without
> sending a mail to the community, has improved the development process a lot.
> So clearly we're going to have to do something.  I certainly could not have
> done stuff like AIO without it.
>
>
> I'd be interested in feedback about how high folks value different aspects:
>
> 1) CI software can be self hosted
>
>    E.g. to prevent at least the cfbot case from being unpredictably abandoned
>    again.
>
>
> 2) CI software is open source
>
>    E.g. out of a principled stance, or control concerns.
>
>
> 3) CI runs quickly
>
>    This matters e.g. for accepting running in containers and whether it's
>    crucial to be able to have our images with everything pre-installed.
>
>
> 4) CI tests as many operating systems as possible
>
>    A lot of system just support linux, plenty support macos, some support
>    windows. Barely any support anything beyond that.
>
>
> 5) CI can be enabled on one's own repositories
>
>    Cfbot obviously allows everyone to test patches some way, but sending patch
>    sets to the list just to get a CI run obviously gets noisy quite fast.
>
>    There are plenty of open source CI solutions, but clearly it's not viable
>    for everyone to set that up for themselves. Plenty providers do allow doing
>    so, but the overlap of this, open source (2), multiple platforms (4) is
>    small if it exists.
>
>
> 6) There need to be free credits for running at least some CI on one's own
>    repository
>
>    This makes the overlapping constraints mentioned in 5) even smaller.
>
>    There are several platforms that do provide a decent amount of CI for a
>    monthly charge of < 10 USD.
>
>
> 7) Provide CI compute for "well known contributors" for free in their own
>    repositories
>
>    An alternative to 6) - with some CI solutions - can be to add folks to some
>    team that allows them to use community resources (which so far have been
>    donated).  The problem with that is that it's administratively annoying,
>    because one does need to be careful, or CI will be used to do
>    cryptocurrency mining or such within a few days.

It's hard for me to judge priorities, but I have a proposal on how we
can try to handle this.

Migrate to Open Source CI software, and run it on (cheap) cloud + get
sponsorship to cover the migration cost.  This should protect us from
disasters like this.  In worst case we would need to loop for
different cloud or different sponsor.

Provide CI workflow for GIthub Actions on our repository.  This
wouldn't provide the plurality of platforms that we have now, but at
least everybody can get some basic CI coverage for free.

What do you think?

------
Regards,
Alexander Korotkov
Supabase



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Alexander Korotkov
Дата:
On Fri, Apr 10, 2026 at 3:23 PM Alexander Korotkov <aekorotkov@gmail.com> wrote:
> On Thu, Apr 9, 2026 at 11:55 PM Andres Freund <andres@anarazel.de> wrote:
> >
> > As the subject says, cirrus-ci, which cfbot uses to run CI and that one can
> > (for now) enable on one's own repository, is shutting down.
> >
> > https://cirruslabs.org/ burries the lede a bit, but it has further down:
> >   "Cirrus CI will shut down effective Monday, June 1, 2026."
> >
> > I can't say I'm terribly surprised, they had been moving a lot slower in the
> > last few years.
> >
> > The shutdown window is pretty short, so we'll have to do something soon. Glad
> > that it didn't happen a few months ago, putting the shutdown before the
> > feature freeze. This is probably close to the least bad time it could happen
> > with a short window.
>
>
> +1
>
> >
> > I think having cfbot and CI that one could run on ones own repository, without
> > sending a mail to the community, has improved the development process a lot.
> > So clearly we're going to have to do something.  I certainly could not have
> > done stuff like AIO without it.
> >
> >
> > I'd be interested in feedback about how high folks value different aspects:
> >
> > 1) CI software can be self hosted
> >
> >    E.g. to prevent at least the cfbot case from being unpredictably abandoned
> >    again.
> >
> >
> > 2) CI software is open source
> >
> >    E.g. out of a principled stance, or control concerns.
> >
> >
> > 3) CI runs quickly
> >
> >    This matters e.g. for accepting running in containers and whether it's
> >    crucial to be able to have our images with everything pre-installed.
> >
> >
> > 4) CI tests as many operating systems as possible
> >
> >    A lot of system just support linux, plenty support macos, some support
> >    windows. Barely any support anything beyond that.
> >
> >
> > 5) CI can be enabled on one's own repositories
> >
> >    Cfbot obviously allows everyone to test patches some way, but sending patch
> >    sets to the list just to get a CI run obviously gets noisy quite fast.
> >
> >    There are plenty of open source CI solutions, but clearly it's not viable
> >    for everyone to set that up for themselves. Plenty providers do allow doing
> >    so, but the overlap of this, open source (2), multiple platforms (4) is
> >    small if it exists.
> >
> >
> > 6) There need to be free credits for running at least some CI on one's own
> >    repository
> >
> >    This makes the overlapping constraints mentioned in 5) even smaller.
> >
> >    There are several platforms that do provide a decent amount of CI for a
> >    monthly charge of < 10 USD.
> >
> >
> > 7) Provide CI compute for "well known contributors" for free in their own
> >    repositories
> >
> >    An alternative to 6) - with some CI solutions - can be to add folks to some
> >    team that allows them to use community resources (which so far have been
> >    donated).  The problem with that is that it's administratively annoying,
> >    because one does need to be careful, or CI will be used to do
> >    cryptocurrency mining or such within a few days.
>
> It's hard for me to judge priorities, but I have a proposal on how we
> can try to handle this.
>
> Migrate to Open Source CI software, and run it on (cheap) cloud + get
> sponsorship to cover the migration cost.

Sorry, I meant sponsorship to cover the cloud cost.

------
Regards,
Alexander Korotkov
Supabase



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Peter Eisentraut
Дата:
On 09.04.26 22:55, Andres Freund wrote:
> I'd be interested in feedback about how high folks value different aspects:
> 
> 1) CI software can be self hosted
> 
>     E.g. to prevent at least the cfbot case from being unpredictably abandoned
>     again.
> 
> 
> 2) CI software is open source
> 
>     E.g. out of a principled stance, or control concerns.

I think we should work toward that in the long run.  Open-source 
software should also have an open-source (and distributed, and 
privacy-respecting, and reusable, etc.) development process.

In the short run, meaning something that is plausible to get ready 
between now and June/July, using some stopgap from an existing 
established provider (such as GH actions) would probably be better.

> 3) CI runs quickly
> 
>     This matters e.g. for accepting running in containers and whether it's
>     crucial to be able to have our images with everything pre-installed.
> 
> 
> 4) CI tests as many operating systems as possible
> 
>     A lot of system just support linux, plenty support macos, some support
>     windows. Barely any support anything beyond that.
> 
> 
> 5) CI can be enabled on one's own repositories
> 
>     Cfbot obviously allows everyone to test patches some way, but sending patch
>     sets to the list just to get a CI run obviously gets noisy quite fast.
> 
>     There are plenty of open source CI solutions, but clearly it's not viable
>     for everyone to set that up for themselves. Plenty providers do allow doing
>     so, but the overlap of this, open source (2), multiple platforms (4) is
>     small if it exists.

This is the most important one, for me.

I think it would be even more useful if one could run the whole thing, 
or most of the thing, locally.  I mean, I can run all kinds of VMs 
locally, all the pieces of this already exist.  But it needs some 
integration to build the images locally, and then run the build and test 
processes in this images.  This wouldn't cover everything (e.g., can't 
virtualize macOS unless on macOS, IIRC), but I shouldn't really need to 
push my code half-way around the world just to do a build run on NetBSD. 
  This could be someone's $season of code project.

> 7) Provide CI compute for "well known contributors" for free in their own
>     repositories
> 
>     An alternative to 6) - with some CI solutions - can be to add folks to some
>     team that allows them to use community resources (which so far have been
>     donated).  The problem with that is that it's administratively annoying,
>     because one does need to be careful, or CI will be used to do
>     cryptocurrency mining or such within a few days.

In a way, well known contributors can fend for themselves.  We want to 
get as many new or occasional contributors to run this so that the 
patches build and test successfully before anyone else has to look at them.




Re: Heads Up: cirrus-ci is shutting down June 1st

От
Bruce Momjian
Дата:
On Fri, Apr 10, 2026 at 01:31:38PM +0200, Jelte Fennema-Nio wrote:
> On Thu, 9 Apr 2026 at 22:55, Andres Freund <andres@anarazel.de> wrote:
> > I'd be interested in feedback about how high folks value different aspects:
> 
> My thoughts below.
> 
> > 1) CI software can be self hosted
> >
> >    E.g. to prevent at least the cfbot case from being unpredictably abandoned
> >    again.
> 
> Low, I personally don't want to manage self hosting it. Self-hosted
> software can just as easily be abandoned. i.e. I'd expect GitHub
> Actions to outlive underfunded open source CI software.

Uh, I actually think the opposite.  while proprietary software doesn't
disappear, it seems to become obsolete (underfunded development) or
prohibitively expensive sooner than open source.  The dataase industry
has certainly shown that in the past 30 years.  Also, four months ago
Github wanted to charge for self-hosted actions, which supports
"prohibitively expensive":

    https://www.reddit.com/r/devops/comments/1po8hj5/github_actions_introducing_a_perminute_fee_for/

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Heikki Linnakangas
Дата:
On 09/04/2026 23:55, Andres Freund wrote:
> As the subject says, cirrus-ci, which cfbot uses to run CI and that one can
> (for now) enable on one's own repository, is shutting down.
> 
> https://cirruslabs.org/ burries the lede a bit, but it has further down:
>    "Cirrus CI will shut down effective Monday, June 1, 2026."
> 
> I can't say I'm terribly surprised, they had been moving a lot slower in the
> last few years.

Darn, I liked Cirrus CI. One reason being precisely that it has been 
stable, i.e. moved slowly, for years :-).

> I think having cfbot and CI that one could run on ones own repository, without
> sending a mail to the community, has improved the development process a lot.
> So clearly we're going to have to do something.  I certainly could not have
> done stuff like AIO without it.

+1. I rely heavily on cirrus CI nowadays to validate before I push.

> I'd be interested in feedback about how high folks value different aspects:
> 
> 1) CI software can be self hosted
> 
>     E.g. to prevent at least the cfbot case from being unpredictably abandoned
>     again.
> 
> 
> 2) CI software is open source
> 
>     E.g. out of a principled stance, or control concerns.

These probably go together.

I think it's important that you can self-host. Even with cirrus-ci I 
actually wished there was an easy way to run the jobs locally. I don't 
know how often I'd really do it, but especially developing and testing 
the ci yaml files is painful when you can't run it locally.

> 3) CI runs quickly
> 
>     This matters e.g. for accepting running in containers and whether it's
>     crucial to be able to have our images with everything pre-installed.

Pretty important. "quickly" is pretty subjective though, I'm not sure 
what number to put to it. Cirrus-CI has felt fast enough.

> 4) CI tests as many operating systems as possible
> 
>     A lot of system just support linux, plenty support macos, some support
>     windows. Barely any support anything beyond that.

Windows support is pretty important as it's different enough from 
others. Macos is definitely good to have too. For others, we have the 
buildfarm.

> 5) CI can be enabled on one's own repositories
> 
>     Cfbot obviously allows everyone to test patches some way, but sending patch
>     sets to the list just to get a CI run obviously gets noisy quite fast.
> 
>     There are plenty of open source CI solutions, but clearly it's not viable
>     for everyone to set that up for themselves. Plenty providers do allow doing
>     so, but the overlap of this, open source (2), multiple platforms (4) is
>     small if it exists.

This is important. I run the CI as part of development on my own 
branches all the time.

If it's easy to self-host, that might cover it.

> 6) There need to be free credits for running at least some CI on one's own
>     repository
> 
>     This makes the overlapping constraints mentioned in 5) even smaller.
> 
>     There are several platforms that do provide a decent amount of CI for a
>     monthly charge of < 10 USD.

Not important. For running on one's own repository, it's totally 
reasonable that you pay for it yourself. Especially if you can self-host 
for free.

> 7) Provide CI compute for "well known contributors" for free in their own
>     repositories
> 
>     An alternative to 6) - with some CI solutions - can be to add folks to some
>     team that allows them to use community resources (which so far have been
>     donated).  The problem with that is that it's administratively annoying,
>     because one does need to be careful, or CI will be used to do
>     cryptocurrency mining or such within a few days.

Not important. Active contributors can easily pay for what they use, or 
self-host.

- Heikki



Re: Heads Up: cirrus-ci is shutting down June 1st

От
David Steele
Дата:
On 4/10/26 06:29, Thomas Munro wrote:
> On Fri, Apr 10, 2026 at 8:55 AM Andres Freund <andres@anarazel.de> wrote:
>> 4) CI tests as many operating systems as possible
>>
>>     A lot of system just support linux, plenty support macos, some support
>>     windows. Barely any support anything beyond that.
> 
> Nested virtualisation to the rescue?
> 
> https://github.com/cross-platform-actions/action

I used this to migrate our FreeBSD tests [1] and it worked out OK. The 
only downside is it doesn't look like you can split out steps so all the 
commands end up logged together.

Regards,
-David

[1] 
https://github.com/pgbackrest/pgbackrest/blob/main/.github/workflows/test.yml#L148



Re: Heads Up: cirrus-ci is shutting down June 1st

От
"David E. Wheeler"
Дата:
Hi,

I’ve started thinking about moving away from GitHub actions myself, and was wondering what else was out there that
fulfillsa bunch of these needs. Feedback I got and some brief research turned up Woodpecker CI[0] 

[0]: https://woodpecker-ci.org/


On Apr 13, 2026, at 04:34, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

> These probably go together.
>
> I think it's important that you can self-host. Even with cirrus-ci I actually wished there was an easy way to run the
jobslocally. I don't know how often I'd really do it, but especially developing and testing the ci yaml files is
painfulwhen you can't run it locally. 

While Woodpecker promotes its Docker images, esp. for integration with Codeberg and other Forgejo services, it’s a Go
appso compiles for quite a lot of platforms, and has a “local mode” in which, from what I understand, you can run it on
whatevertrusted hardware you’d like. 

So if we have, say, a Mac Mini plus an arm and amd system capable of virtualizing Linux, BSD, etc., perhaps we’d be
ableto get the coverage we need and host the results in a self-hosted Woodpecker service? 

As I say, I’ve just started to kind of cast about for alternatives, so don’t know a lot about it myself, but on the
surfaceit looks promising. 

Best,

David


Вложения

Re: Heads Up: cirrus-ci is shutting down June 1st

От
Thomas Munro
Дата:
On Mon, Apr 13, 2026 at 11:53 PM David Steele <david@pgbackrest.org> wrote:
> On 4/10/26 06:29, Thomas Munro wrote:
> > Nested virtualisation to the rescue?
> >
> > https://github.com/cross-platform-actions/action
>
> I used this to migrate our FreeBSD tests [1] and it worked out OK. The
> only downside is it doesn't look like you can split out steps so all the
> commands end up logged together.

      - name: Run Test
        uses: cross-platform-actions/action@v1.0.0
        with:
          operating_system: freebsd
          version: ${{matrix.os.version}}
          run: |
            uname -a
            sudo pkg update && sudo pkg upgrade -y libiconv && sudo
pkg install -y bash git postgresql-libpqxx pkgconf libxml2 gmake perl5
libyaml p5-YAML-LibYAML rsync meson
            cd .. && perl ${GITHUB_WORKSPACE?}/test/test.pl --vm-max=2
--no-coverage --no-valgrind  --module=command --test=backup
--test=info --test=archive-push

Nice!

I guess the problems with this are:

1.  It has to install the packages every time because it's not yet
using a pre-prepared image.
2.  It has no ccache memory.
3.  It has lost all that user-friendly stuff like artefact
archival/browsing, core file debugging etc.
4.  IIRC the log URLs are not "public", you have to have to be logged
into an account to view them.

(That 4th point was one of Cirrus's unique advantages at the time we
selected it.  We wanted to be able to share URLs for discussion on the
mailing list without requiring everyone to be a GitHub user.)

Perhaps for point 1, we could publish fast-start qemu images for
Debian, FreeBSD, NetBSD, OpenBSD*.  The pg-vm-images repo that Andres
and Bilal maintain currently uploads images to Google Cloud's image
repository where Cirrus VMs can boot from them, but it could instead
publish qemu images to our own public URLs.  I'm picturing a bunch of
images available as
https://ci.postgresql.org/images/qemu/arm64/{freebsd-15,debian-13,...}-with-postgresql-dependencies.img.
The point of per-arch variants would be to match common hosts for fast
kernel hypervisor support, eg on a Mac you want arm64, though you
could still run amd64 slowly if you need to.  Could even do ppc and
riscv with emulation.

Qemu images should hopefully be usable in many different environments:

1.  We could run them locally with some one-button command, and also
have images you can log into and hack on if you want.
2.  We could run all of them or just the license-encumbered ones on
public clouds (not through a CI service) with some one-button command,
if you have an account.
3.  We could use them in people's private GitHub/GitLab/... accounts
as you showed, just add
image_url=https://ci.postgresql.org/images/qemu/....
4.  Cfbot could do any of those things, not sure what would be best.

For the license-encumbered OSes, we could at least make disk images or
archives containing a MacPorts installation or
bunch-of-installed-libraries-for-Windows, but not including the OS.
Just mount/unpack as /opt or C:\pg-packages or whatever, I guess, if
you can figure out how to get a VM running ... somewhere.  Perhaps
there is some way to make project-owned resources (MacMinis, Windows
VMs) available to our community too, but IDK how that would work.

Some random half-baked thoughts about the ccache, browsing, etc problems:

1.  Local qemu: we could use overlay images so that your downloaded
copy of X-with-postgres-dependencies.img remains read-only.  Create a
new empty overlay image for each clean run, and if you need to inspect
logs, core files, you can just log in before the next run wipes it.
2.  Local qemu: we could mount a separate disk image as /cache that
survives between runs and can be wiped any time.
3.  Public CI system like GitHub actions: I suppose we could run our
own ccache, artefact, log hosting service that it could push to...
that was something I already wondered about under Cirrus due to
various disk space and retention problems... but I'm quite hesitant to
get tangled up in running "public" services and unsure how you'd
control access.

I would at least like to think about trying to make cfbot
capitalism-proof.  I may be underestimating the difficulty, but I keep
wondering if cfbot should at least be able to do everything itself,
with some combination of local qemu, qemu-on-project-Mac-fleet, and
public cloud VMs controlled directly.  It doesn't really *need* to
depend on ephemeral venture capital-powered CI companies, it was just
nice to make it use the exact same CI setup as you could use for
yourself in your GitHub account.  I'm imagining that it would still
push branches to GitHub, since that's a nice interface to browse code
on, and I suppose it might even be possible to publish our own
minimalist GitHub plugin that allows cfbot to push its green/red
result indicators to it since that's clearly something that external
providers can do (as well as pushing them to the commitfest UI as
now).  But if you clicked them, you'd be taken to a really primitive
cfbot web interface where you could browse logs and artefacts retained
for N days.  In other words, an extremely cut down and limited
"let's-make-our-own-CI" project, which doesn't have to tackle the much
harder "let's-make-our-own-semi-public-CI-platform" project.  I like
the idea of at least having such a mode as an insurance policy anyway,
but I'm not sure what nitty gritty details might make it hard to pull
off...  In this thought experiment, people could continue to work
separately on making personal CI work in various ways, GitHub, GitLab,
whatever else, and local, and all ways of doing it would be using the
same scripts and VM images.

* ... and AFAIK we could add illumos to the set if we wanted, in the
past a couple of us tried to get that going but ran into ... I think
it was driver problems? ... when using GCP VMs, but it definitely
works in qemu VMs as that cross-platform-actions project shows.  Every
OS project makes sure it can boot in qemu.  Even AIX can boot in qemu,
if you have a license.



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Robert Haas
Дата:
On Thu, Apr 9, 2026 at 4:55 PM Andres Freund <andres@anarazel.de> wrote:
> I'd be interested in feedback about how high folks value different aspects:
>
> 1) CI software can be self hosted
> 2) CI software is open source
> 3) CI runs quickly
> 4) CI tests as many operating systems as possible
> 5) CI can be enabled on one's own repositories
> 6) There need to be free credits for running at least some CI on one's own
>    repository
> 7) Provide CI compute for "well known contributors" for free in their own
>    repositories

I think we need most of these things. CI has become an indispensable
development tool for most of us at this point. If (1) and (2) then (6)
and (7) are less necessary, and conversely. (5) seems pretty critical;
as long as I took to get CI set up on my own repo, I now use it
extensively. (4) is less critical: we could probably live with just
Linux and Windows in a pinch; adding MacOS and/or *BSD would be nicer.

> For some context about how much CI we have been running, here's the daily
> average for cfbot and postgres/postgres CI:
>
> - 1464 core hours (full cores, not SMT), all CI jobs use 4 cores
> - 396 core hours of which were windows (visible due to the licensing cost)
> - 40 GB of artifacts
> - 83 GB of artifacts downloaded externally
> - doesn't include macos, which I can't track as easily, due to being self
>   hosted runners, rather than running on GCP, which provided the above numbers

I wonder if we should be looking to add more heuristics to the system
to try to reduce these numbers. For example, just browsing through the
cfbot queue, I found this:

heapam_tuple_complete_speculative : remove unnecessary tuple fetch

https://cirrus-ci.com/github/postgresql-cfbot/postgresql/cf%2F6613

This patch removes six lines of code and adds none. There are four
messages on the thread. We've done 14 complete CI runs. That might be
an extreme example, but I just don't know if repeatedly running CI on
small patches that aren't being actively updated is really what we
want to be doing.

--
Robert Haas
EDB: http://www.enterprisedb.com



Re: Heads Up: cirrus-ci is shutting down June 1st

От
Michael Paquier
Дата:
On Fri, Apr 17, 2026 at 02:50:53PM -0400, Robert Haas wrote:
> This patch removes six lines of code and adds none. There are four
> messages on the thread. We've done 14 complete CI runs. That might be
> an extreme example, but I just don't know if repeatedly running CI on
> small patches that aren't being actively updated is really what we
> want to be doing.

Yes, starting with a low threshold should have little impact.  I
suspect that we could take it slow, say by testing much less patches
that have a max of N lines touched (20~50?), and shave in resource
usage.  This would not change much how useful the information provided
is.
--
Michael

Вложения

Re: Heads Up: cirrus-ci is shutting down June 1st

От
Tom Lane
Дата:
Michael Paquier <michael@paquier.xyz> writes:
> On Fri, Apr 17, 2026 at 02:50:53PM -0400, Robert Haas wrote:
>> This patch removes six lines of code and adds none. There are four
>> messages on the thread. We've done 14 complete CI runs. That might be
>> an extreme example, but I just don't know if repeatedly running CI on
>> small patches that aren't being actively updated is really what we
>> want to be doing.

> Yes, starting with a low threshold should have little impact.  I
> suspect that we could take it slow, say by testing much less patches
> that have a max of N lines touched (20~50?), and shave in resource
> usage.  This would not change much how useful the information provided
> is.

I think running a test promptly after a new patch submission is
useful, even for small patches.  I agree that the periodic re-tests
for bit-rot could be scaled back a lot.

            regards, tom lane



Re: Heads Up: cirrus-ci is shutting down June 1st

От
"Euler Taveira"
Дата:
On Fri, Apr 17, 2026, at 6:48 PM, Tom Lane wrote:
>
> I think running a test promptly after a new patch submission is
> useful, even for small patches.  I agree that the periodic re-tests
> for bit-rot could be scaled back a lot.
>

That's my opinion too. This is particularly important for first-time
contributors that may not know about the Postgres development process. For
regular contributors, I expect that they have a CI setup and submit a new
version only after the patch passes CI in its own repository.

I'm not sure about restricting the CI runs to small patches. Although it is a
minority, there are small patches that has a big potential to break things.
Maybe an alternative to small and/or high-frequency patches is to not run them
automatically but have a mechanism to trigger them manually once detected. The
author or even one of the reviewers can trigger it.


-- 
Euler Taveira
EDB   https://www.enterprisedb.com/