From: Justin Pryzby Date: Wed, 25 May 2022 22:05:13 -0500 Subject: [PATCH 2/6] cirrus/windows: ccache ccache 4.7 added support for depend mode with MSVC, and ccache v4.10 supports PCH, so this is now viable. https://www.postgresql.org/message-id/flat/20220522232606.GZ19626%40telsasoft.com https://cirrus-ci.com/task/5213936495099904 build 29sec --- .cirrus.tasks.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 5dd37e07aae..fb4ea3d666a 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -546,6 +546,12 @@ task: env: TEST_JOBS: 8 # wild guess, data based value welcome + CC: c:\msys64\ucrt64\bin\ccache.exe cl.exe + CCACHE_DIR: $CIRRUS_WORKING_DIR/.ccache + CCACHE_MAXSIZE: "500M" + CCACHE_SLOPPINESS: pch_defines,time_macros + CCACHE_DEPEND: 1 + # Cirrus defaults to SetErrorMode(SEM_NOGPFAULTERRORBOX | ...). That # prevents crash reporting from working unless binaries do SetErrorMode() # themselves. Furthermore, it appears that either python or, more likely, @@ -563,6 +569,9 @@ task: setup_additional_packages_script: | REM choco install -y --no-progress ... + ccache_cache: + folder: $CCACHE_DIR + setup_hosts_file_script: | echo 127.0.0.1 pg-loadbalancetest >> c:\Windows\System32\Drivers\etc\hosts echo 127.0.0.2 pg-loadbalancetest >> c:\Windows\System32\Drivers\etc\hosts @@ -570,9 +579,10 @@ task: type c:\Windows\System32\Drivers\etc\hosts # Use /DEBUG:FASTLINK to avoid high memory usage during linking + # Use /Z7 to write separate debug files, to allow ccache to work configure_script: | vcvarsall x64 - meson setup --backend ninja --buildtype debug -Dc_link_args=/DEBUG:FASTLINK -Dcassert=true -Dinjection_points=true -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=%TAR% -DPG_TEST_EXTRA="%PG_TEST_EXTRA%" build + meson setup build --backend ninja --buildtype debug -Dc_link_args=/DEBUG:FASTLINK -Dcassert=true -Dinjection_points=true -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=%TAR% -DPG_TEST_EXTRA="%PG_TEST_EXTRA%" -Dc_args="/Z7" build_script: | vcvarsall x64 @@ -581,6 +591,9 @@ task: REM without the pipe, exiting now if it fails, to avoid trying to run checks ninja -C build > nul + always: + upload_caches: [ccache] + check_world_script: | vcvarsall x64 meson test %MTEST_ARGS% --num-processes %TEST_JOBS% -- 2.42.0 --ndI8Dx/wEX5btThR Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0003-WIP-ci-meson-allow-showing-only-failed-tests.patch"