Re: ci: Follow-up CI patches

From: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Jelte Fennema-Nio <postgres(at)jeltef(dot)nl>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>
Subject: Re: ci: Follow-up CI patches
Date: 2026-11-05 14:22:36
Message-ID: CAN55FZ3rgXO4Mho3jvOfXtR6kuxewJz5aHwmoTV6BN2UZv2+TA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Wed, 4 Nov 2026 at 17:36, Andres Freund <andres(at)anarazel(dot)de> wrote:
>
> On 2026-11-04 11:28:02 +0300, Nazir Bilal Yavuz wrote:
> > Andres shared some CI patches in the 'Heads Up: cirrus-ci is shutting
> > down June 1st' thread [1]. Since this thread is already quite long, I
> > wanted to create a new thread for them.
>
> Thanks!

Here are two more follow-up patches; the other patches are unchanged.

First one (0007) upgrades the OS versions:

Ubuntu 24.04 -> Ubuntu 26.04
Windows 2022 -> Windows 2025
Macos 15 -> Macos 26 and Macports 2.10.1 -> 2.12.7

All tested and work correctly.

Second one (0008) uses parallel steps feature [1] in the
CompilerWarnings task. This feature helps run some steps in parallel
in the background. I tested a bit to find the best method for
parallelizing, from the commit message:

```
Different methods are tested with cold and warm compiler caches on a
four-core GitHub-hosted runner. Total CompilerWarnings job times are:

Cold Warm
Default 20m 56s 3m 57s
Parallel configure, sequential builds 19m 47s 3m 04s
Pairs of checks, ninja -j 2 18m 10s 3m 49s
All checks in parallel, ninja -j 1 15m 26s 2m 30s
All checks in parallel, default ninja jobs 17m 03s 3m 48s

- Parallel configure, sequential builds: Configure all seven checks
concurrently, then build them one at a time using Ninja’s default
concurrency.

- Pairs of checks, ninja -j 2: Run configuration and build in three
successive pairs with two Ninja jobs per check, then run the
remaining header check alone with default concurrency.

- All checks in parallel, ninja -j 1: Run all seven configure/build
sequences concurrently, limiting each Ninja invocation to one job.

- All checks in parallel, default Ninja jobs: Same as above but using
Ninja's default concurrency.

Based on this result, 'all checks in parallel, ninja -j 1' is selected.
```

I used $j = max($available_cpus / $parallel_jobs, 1) and that
calculates 1 since we have 4 CPU. I am not sure this is the right
method because if some jobs finish early and free up CPU resources,
other tasks will still use $j. However, this method is the fastest,
which I didn't expect it. So this one is used.

[1] https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#example-running-steps-in-parallel

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachment Content-Type Size
v15-0001-ci-get-build-test-concurrency-from-environment.patch text/x-patch 5.2 KB
v15-0002-ci-Make-msys2-install-smaller.patch text/x-patch 1.9 KB
v15-0003-ci-Make-our-own-msys2-install-from-scratch-inste.patch text/x-patch 5.4 KB
v15-0004-squash-or-drop-Use-pacboy-for-shorter-package-na.patch text/x-patch 1.5 KB
v15-0005-ci-Make-runs-on-overridable.patch text/x-patch 10.2 KB
v15-0006-ci-Move-to-per-job-naming-for-containers.patch text/x-patch 5.2 KB
v15-0007-ci-Upgrade-GitHub-Actions-runner-OS-versions.patch text/x-patch 4.4 KB
v15-0008-ci-Run-compiler-warning-checks-in-parallel.patch text/x-patch 10.3 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2026-11-05 14:37:16 Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring
Previous Message Shlok Kyal 2026-11-05 13:33:33 Re: logical decoding: skip unnecessary snapshot distribution.