Re: Mingw task for Cirrus CI - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Mingw task for Cirrus CI
Date
Msg-id 20221019031928.ey2wngo7osayk6og@awork3.anarazel.de
Whole thread Raw
In response to Re: Mingw task for Cirrus CI  (Melih Mutlu <m.melihmutlu@gmail.com>)
Responses Re: Mingw task for Cirrus CI  (Melih Mutlu <m.melihmutlu@gmail.com>)
List 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



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Make finding openssl program a configure or meson option
Next
From: Kyotaro Horiguchi
Date:
Subject: Re: thinko in basic_archive.c