| 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.
--
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 |
| 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. |