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

From: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>, Jelte Fennema-Nio <postgres(at)jeltef(dot)nl>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org, Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>
Subject: Re: Heads Up: cirrus-ci is shutting down June 1st
Date: 2026-06-02 12:19:02
Message-ID: CAN55FZ3xUdVxTQdCpDW0WOQ4M_fXmK=nMXkfkmwjY1StV5GY=w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Tue, 2 Jun 2026 at 00:57, Andres Freund <andres(at)anarazel(dot)de> wrote:
>
> Attached is an large incremental patch onto Bilal's version:

Thank you!

> - I hacked enough on the pg-vm-images repo to make it store containers in
> github (on the gha_main branch, for now). That makes the container
faster
> and cheaper to retrieve.

Nice.

> We might want to split the containers further (e.g. cross building and
32bit
> support), but for now I just split the docs stuff into a separate
container.

Is this really useful? I remember that we merged Windows VM images because
of the storage costs.

> - The reason that sometimes cancelling took a long time was, afaict, the
use
> of always() in the compiler-warning job. That apparently prevents GHA
from
> cancelling the job in a timely fashion. I turned those into
!cancelled().
>
> Also addded a !cancelled() to SanityCheck.

That makes sense.

> - In the end I didn't like the matrix all that much, makes it considerably
> harder to understand everything and the restrictions GHA puts on it are
just
> too annoying.
>
> I replaced it much more heavy use of yaml anchors/aliases and by
updating
> the environment programattically. I'm not sure how much better it is
now.

I think this is better compared to matrix and closer to what we had with
Cirrus. One thing I didn't like is that we need to define yaml anchors in
the jobs, I wish we could define them at the top..

> - The macports cache keys included the run_id, I think that's a bad idea,
> because it leads to the cache being newly uploaded even if there's been
no
> change. That'll lead to even more quickly churning through the cache
space.

That makes sense.

> - ccache:
>
> - There was too much duplication around the ccache handling for my
taste. I
> moved that into a yaml anchor and reused it everywhere. By using
> ${{github.job_id}} the cache names don't need to be manually
disambiguated.
>
> - The ccache names weren't unique enough. The run_id doesn't change
during
> reruns which would lead to warnings.
>
> - Made it so that the cache is saved immediately after the build, so
that
> cancelled builds still save the cache.

AFAIU, we save cache although the job might fail later. Would that cause
problems?

> - I wanted to share commands like meson test between the tasks, made that
work
> with a bit of hackery.
>
>
> - I didn't see why
> find / -maxdepth 1 -type f -name 'core*' -exec mv '{}' /tmp/cores/ \;
> was needed.

I think the reasoning is that we don't have a 'setup_core_files_script'
step on the Cirrus' SanityCheck. I agree we don't need this now.

> - I found it hard to find actual warnings in the output of
CompilerWarnings,
> due to to all the configure output. I added some magic output stuff to
make
> the configure output collapse once it ran.

Adding a comment explaining what these echos for would be useful but I
couldn't find a nice place to add a comment. Perhaps the first use of these
echos?

> - I converted most things to use ${{env.varname}} instead of $VARNAME or
> %VARNAME%, as that allows sharing code between windows and other OSs if
one
> is a bit careful.

Nice.

> - Deduplicated a few other things like logging.
>
>
> - Added a commit removing cirrus, mainly because I was tired of it also
> running while hacking on this.

I am not sure that is the actual proposed commit for removing Cirrus but we
have several more places which mention Cirrus.

> - Also added a commit to reduce the segment size in tests to 1MB, that
makes
> them a decent bit less IO intensive.
>
>
> - Added a commit to just run regress/regress, makes it a lot faster to
test
> "complete-ish" cycles.

I think that would be useful. Perhaps we can enable this with commit
messages like how 'ci-os-only' is used. I mean something like
'ci-test-only:' or such?

> - Changed sanitizer using builds to use -O2, to reduce the CPU cost a bit.
>
> This makes uncached builds noticeably slower, but does appear to be a
> win. But I could see counter-arguments to that too.
>
>
> - Removed :detect_stack_use_after_return=0, as that's been made
unnecessary
> since you "forked off" from .cirrus.tasks.yml.
>
>
> A few other comments:
>
> - All the caches in GHA apparently are branch specific, except that
branches
> can access the caches of the main branch.
>
> I think that'll make particularly macports very expensive for cfbot. I
> wonder if we ought to build the "base" macports cache in pg-vm-images.
>
> Similarly, I think we probably should do that for mingw64.

If i understood correctly, you mean that we will push cache to hardcoded
URL and download caches from the same URL, right? Or do you have something
else in your mind?

> - src/tools/ci/README needs updating

Yes, with several other files:
- src/bin/pg_combinebackup/t/010_hardlink.pl
- src/test/perl/PostgreSQL/Test/Cluster.pm
- src/tools/ci/gcp_ram_disk.sh (Do we need to remove this? I am not sure we
will use this when we have BSDs on GHA.)

I looked at 0002 for now and it looks good to me. I implemented several
more changes on top of 0002 as 0003 and reattached patches:

- Fixed the cancelling on REL_ branches.
- Used YAML anchors on the CompilerWarnings task.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachment Content-Type Size
v6.2a-0001-Add-GitHub-Actions-workflow-for-CI.patch text/x-patch 40.3 KB
v6.2a-0002-gha-Andres-revisions.patch text/x-patch 40.9 KB
v6.2a-0003-WIP.patch text/x-patch 5.7 KB
v6.2a-0004-disable-cirrus.patch text/x-patch 39.4 KB
v6.2a-0005-smaller-segsize-for-tests.patch text/x-patch 5.9 KB
v6.2a-0006-gha-Only-run-main-regression-tests.patch text/x-patch 1.2 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nikita Malakhov 2026-06-02 12:31:40 Re: problems with toast.* reloptions
Previous Message Thomas Munro 2026-06-02 11:59:35 Re: Heads Up: cirrus-ci is shutting down June 1st