Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 967db24

Browse files
committed
ci: Add task testing windows with mingw
For now the task has been set to be manually triggered, as we are already limited by the amount of CI time available for windows, particularly on cfbot. Author: Melih Mutlu <m.melihmutlu@gmail.com> Reviewed-by: Andrew Dunstan <andrew@dunslane.net> Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: Justin Pryzby <pryzby@telsasoft.com> Reviewed-by: Nazir Bilal Yavuz <byavuz81@gmail.com> Discussion: https://postgr.es/m/CAGPVpCSKS9E0An4=e7ZDnme+y=WOcQFJYJegKO8kE9=gh8NJKQ@mail.gmail.com
1 parent 1489b1c commit 967db24

File tree

2 files changed

+79
-14
lines changed

2 files changed

+79
-14
lines changed

.cirrus.yml

Lines changed: 78 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -393,25 +393,36 @@ task:
393393
cores_script: src/tools/ci/cores_backtrace.sh macos "${HOME}/cores"
394394

395395

396-
task:
397-
name: Windows - Server 2019, VS 2019 - Meson & ninja
398-
396+
WINDOWS_ENVIRONMENT_BASE: &WINDOWS_ENVIRONMENT_BASE
399397
env:
400398
# Half the allowed per-user CPU cores
401399
CPUS: 4
402-
TEST_JOBS: 8 # wild guess, data based value welcome
403400

404401
# The default cirrus working dir is in a directory msbuild complains about
405402
CIRRUS_WORKING_DIR: "c:/cirrus"
406-
# Avoid re-installing over and over
407-
NO_TEMP_INSTALL: 1
408403
# git's tar doesn't deal with drive letters, see
409404
# https://postgr.es/m/b6782dc3-a7b0-ed56-175f-f8f54cb08d67%40dunslane.net
410405
TAR: "c:/windows/system32/tar.exe"
411406
# Avoids port conflicts between concurrent tap test runs
412407
PG_TEST_USE_UNIX_SOCKETS: 1
413408
PG_REGRESS_SOCK_DIR: "c:/cirrus/"
414409

410+
sysinfo_script: |
411+
chcp
412+
systeminfo
413+
powershell -Command get-psdrive -psprovider filesystem
414+
set
415+
416+
417+
task:
418+
name: Windows - Server 2019, VS 2019 - Meson & ninja
419+
<< : *WINDOWS_ENVIRONMENT_BASE
420+
421+
env:
422+
TEST_JOBS: 8 # wild guess, data based value welcome
423+
# Avoid re-installing over and over
424+
NO_TEMP_INSTALL: 1
425+
415426
# startcreate_script starts a postgres instance that we don't want to get
416427
# killed at the end of that script (it's stopped in stop_script). Can't
417428
# trivially use background_scripts because a) need pg_ctl's dropping of
@@ -435,19 +446,13 @@ task:
435446
cpu: $CPUS
436447
memory: 4G
437448

438-
sysinfo_script: |
439-
chcp
440-
systeminfo
441-
powershell -Command get-psdrive -psprovider filesystem
442-
set
443-
444449
setup_additional_packages_script: |
445450
REM choco install -y --no-progress ...
446451
447452
# Use /DEBUG:FASTLINK to avoid high memory usage during linking
448453
configure_script: |
449454
vcvarsall x64
450-
meson setup --backend ninja --buildtype debug -Dc_link_args=/DEBUG:FASTLINK -Dcassert=true -Db_pch=true -Dssl=openssl -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=c:/windows/system32/tar.exe -DPG_TEST_EXTRA="%PG_TEST_EXTRA%" build
455+
meson setup --backend ninja --buildtype debug -Dc_link_args=/DEBUG:FASTLINK -Dcassert=true -Db_pch=true -Dssl=openssl -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
451456
452457
build_script: |
453458
vcvarsall x64
@@ -464,6 +469,66 @@ task:
464469
type: text/plain
465470

466471

472+
task:
473+
<< : *WINDOWS_ENVIRONMENT_BASE
474+
name: Windows - Server 2019, MinGW64 - Meson
475+
476+
# due to resource constraints we don't run this task by default for now
477+
trigger_type: manual
478+
# worth using only_if despite being manual, otherwise this task will show up
479+
# when e.g. ci-os-only: linux is used.
480+
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*mingw.*'
481+
482+
windows_container:
483+
image: $CONTAINER_REPO/windows_ci_mingw64:latest
484+
cpu: $CPUS
485+
memory: 4G
486+
487+
env:
488+
TEST_JOBS: 4 # higher concurrency causes occasional failures
489+
CCACHE_DIR: C:/msys64/ccache
490+
CCACHE_MAXSIZE: "500M"
491+
CCACHE_SLOPPINESS: pch_defines,time_macros
492+
CCACHE_DEPEND: 1
493+
# for some reason mingw plpython cannot find it's installation without this
494+
PYTHONHOME: C:/msys64/ucrt64
495+
# prevents MSYS bash from resetting error mode
496+
MSYS: winjitdebug
497+
# Start bash in current working directory
498+
CHERE_INVOKING: 1
499+
BASH: C:\msys64\usr\bin\bash.exe -l
500+
501+
ccache_cache:
502+
folder: ${CCACHE_DIR}
503+
504+
setup_additional_packages_script: |
505+
REM C:\msys64\usr\bin\pacman.exe -S --noconfirm ...
506+
507+
mingw_info_script: |
508+
%BASH% -c "where gcc"
509+
%BASH% -c "gcc --version"
510+
%BASH% -c "where perl"
511+
%BASH% -c "perl --version"
512+
513+
# disable -Dnls as the number of files it creates cause a noticable slowdown
514+
configure_script: |
515+
%BASH% -c "meson setup -Ddebug=true -Doptimization=g -Dcassert=true -Db_pch=true -Dnls=disabled -DTAR=%TAR% build"
516+
517+
build_script: |
518+
%BASH% -c "ninja -C build"
519+
520+
upload_caches: ccache
521+
522+
test_world_script: |
523+
%BASH% -c "meson test %MTEST_ARGS% --num-processes %TEST_JOBS%"
524+
525+
on_failure:
526+
<<: *on_failure_meson
527+
crashlog_artifacts:
528+
path: "crashlog-*.txt"
529+
type: text/plain
530+
531+
467532
task:
468533
name: CompilerWarnings
469534

src/tools/ci/README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Controlling CI via commit messages
6161
The behavior of CI can be controlled by special content in commit
6262
messages. Currently the following controls are available:
6363

64-
- ci-os-only: {(freebsd|linux|macos|windows)}
64+
- ci-os-only: {(freebsd|linux|macos|windows|mingw)}
6565

6666
Only runs CI on operating systems specified. This can be useful when
6767
addressing portability issues affecting only a subset of platforms.

0 commit comments

Comments
 (0)