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

From: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
To: Jelte Fennema-Nio <postgres(at)jeltef(dot)nl>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Heads Up: cirrus-ci is shutting down June 1st
Date: 2026-05-18 22:27:52
Message-ID: CAN55FZ30Np67cATsqYxF1SsP598VoRv4hJQZ4w9RA3Qe55prnQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Tue, 19 May 2026 at 00:22, Jelte Fennema-Nio <postgres(at)jeltef(dot)nl> wrote:
>
> On Thu, 9 Apr 2026 at 22:55, Andres Freund <andres(at)anarazel(dot)de> wrote:
> > https://cirruslabs.org/ burries the lede a bit, but it has further down:
> > "Cirrus CI will shut down effective Monday, June 1, 2026."
>
> June 1st is getting really close. *In less than two weeks we won't have
> a working CI anymore*. Effectively that's probably one week of calendar
> dev time that's left, because almost everyone is at PGConf.dev right
> now.
>
> So today I decided to take a stab at an initial GitHub Actions yaml
> file, as that seemed like the only viable option within that timeline.
> Note: Claude Code wrote this file entirely, following extensive
> back-and-forth with me after repeatadly getting red builds due to some
> differences between Cirrus and Github Actions.

Thank you for working on this!

> But finally, I managed to get a green build for all systems that we
> support on Cirrus CI!
>
> IMPORTANT CONTEXT: I only did a cursory review of the workflow file that
> Claude created. So there's probably still a bunch of cleanup to do, but
> I at least wanted to share this initial base. I don't know if I'll have
> any more time to work on this before June 1st. I have a newborn that's
> taking up a lot of my spare time. So, I'd be very happy if someone else
> wants to take this patch over and get it to a committable state.

I am actually working on the same thing and I was about to create a
new thread, I am glad that I checked my emails before doing that. I
can take this patch and move forward.

I am attaching my WIP version for visibility. My version doesn't have
BSD operating systems and uses Ubuntu instead of Debian. I didn't know
that containers can be used like you did. Another difference between
our versions is that mine has helper scripts to call things like
installing dependencies, configure, build and test. I did it that way
as we can use these helper scripts for other CI providers in the
future.

I think we can merge these two patches and move forward that way. I am
planning to review your patch and see what I can come up with to get
it to a committable state.

> A few things (apart from more extensive review) that I think should be
> improved soon (but maybe not before the first commit):
> 1. io_uring support is disabled. I couldn't get it to work on the GitHub
> Actions runners, I think it's disabled in the host kernel. @Andres

I managed to get it to work. I think it was due to memlock and I
solved it by running this command: 'sudo prlimit --pid $$
--memlock=unlimited:unlimited' before running the tests.

> 2. It's not using pre-built images at the moment, except for the Linux
> docker images I think. So it re-downloads a bunch of dependencies for
> every build for most OSes. @Bilal or @Andres

Yes, that is a problem and needs to be handled separately.

One other problem is the logs. Github Actions' logs are not public,
you need to sign in to see them. I think we can solve them by
uploading logs to the public when the task fails but perhaps that can
be handled afterwards.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachment Content-Type Size
v1-0001-nbyavuz-Add-Github-Actions-as-CI-provider.patch application/octet-stream 45.6 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Chao Li 2026-05-18 22:27:54 Re: COPY FROM ON_ERROR SET_NULL bypasses domain NOT NULL with partial column list
Previous Message Chao Li 2026-05-18 22:22:15 Re: Fix bug of COPY (on_error set_null)