Re: Mingw task for Cirrus CI

From: Andres Freund <andres(at)anarazel(dot)de>
To: Melih Mutlu <m(dot)melihmutlu(at)gmail(dot)com>
Cc: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, pgsql-hackers(at)postgresql(dot)org, Andrew Dunstan <andrew(at)dunslane(dot)net>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
Subject: Re: Mingw task for Cirrus CI
Date: 2022-10-19 03:19:28
Message-ID: 20221019031928.ey2wngo7osayk6og@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2022-10-19 00:23:46 +0300, Melih Mutlu wrote:
> Right, setting CHERE_INVOKING and removing all cd's work and look better.
> Thanks for the suggestion.

Agreed, good idea.

> +
> + env:
> + CCACHE_DIR: C:/msys64/ccache

It's a bit odd to separate the CCACHE_* variables from each other
(e.g. BUILD_DIR is inbetween them)...

> + BUILD_DIR: "%CIRRUS_WORKING_DIR%/build"
> + PYTHONHOME: C:/msys64/ucrt64

Perhaps add a comment explaining that otherwise plpython tests fail?

> + MSYS: winjitdebug

With this src/tools/ci/cores_backtrace.sh shouldn't need to be modified
anymore afaict?

> + CCACHE_SLOPPINESS: pch_defines,time_macros
> + CCACHE_DEPEND: 1

I experimented a bit and it looks like ccache doesn't yet quite work in CI,
but only because the ccache needs to be larger. Looks like we need about
~400MB.

A fully cached build is ~2min

> + configure_script: |
> + %BASH_EXE% -lc "meson setup --buildtype debug -Dcassert=true -Db_pch=true -DTAR=%TAR% build"

With these buildflags the tests take about 23min37s. Using -Og I saw 18min26s,
with -O1 18m57s and with -O2 18m38s. There's obviously a fair bit of variance,
but it looks like we should use -Og. I think we considered that making compile
times too bad before, but it seems kinda ok now, with 11min. -O2 is 13min,
without providing further benefits.

I'd replace --buildtype debug with -Ddebug=true -Doptimization=g.

> + build_script: |
> + %BASH_EXE% -lc "cd %CIRRUS_WORKING_DIR% && ninja -C build"
>
Why do we still need this cd?

> + upload_caches: ccache
> +
> + test_world_script: |
> + %BASH_EXE% -lc "meson test --print-errorlogs --num-processes %TEST_JOBS% -C build"

Seems like this could use %MTEST_ARGS%?

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro Horiguchi 2022-10-19 03:28:06 Re: thinko in basic_archive.c
Previous Message Michael Paquier 2022-10-19 03:06:04 Re: Make finding openssl program a configure or meson option