Hi,

On Mon, 8 Sept 2025 at 11:25, Nazir Bilal Yavuz <[email protected]> wrote:
>
> Example CI task after the PR is merged and 0002 is committed:
> https://cirrus-ci.com/build/5976334188412928 (I manually triggered the
> VS 2019 task, it will not be run automatically after the 0002 is
> committed).

I forgot to update src/tools/ci/README in the v2, v3 is attached.

-- 
Regards,
Nazir Bilal Yavuz
Microsoft
From f9532eeac988735b02a78847ff6ba5139de546a8 Mon Sep 17 00:00:00 2001
From: Nazir Bilal Yavuz <[email protected]>
Date: Thu, 4 Sep 2025 14:47:04 +0300
Subject: [PATCH v3 1/2] Force using Windows CI image with both VS versions
 installed

This patch should not be committed, only for testing!
---
 .cirrus.yml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 3f75852e84e..87085266ec2 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -74,7 +74,12 @@ default_openbsd_task_template: &openbsd_task_template
 default_windows_task_template: &windows_task_template
   env:
     PLATFORM: windows
-  <<: *cirrus_community_vm_template
+  compute_engine_instance:
+    image_project: pg-ci-images-dev
+    image: pg-ci-windows-ci-2025-09-08t07-40-48
+    platform: $PLATFORM
+    cpu: $CPUS
+    disk: $DISK_SIZE
 
 
 # macos workers provided by cirrus-ci
-- 
2.51.0

From 77ba9eaf85ba2b3304d85caa86ee371541df2c72 Mon Sep 17 00:00:00 2001
From: Nazir Bilal Yavuz <[email protected]>
Date: Thu, 4 Sep 2025 17:20:18 +0300
Subject: [PATCH v3 2/2] ci: windows: Default to VS 2022, run VS 2019 task
 manually

Both VS 2019 and VS 2022 are available on the Windows image [1], but
since VS 2022 is the latest version, make it the default. The VS 2019
task is still available but must be triggered manually.

[1] https://github.com/anarazel/pg-vm-images/pull/116

Author: Nazir Bilal Yavuz <[email protected]>
Discussion: https://postgr.es/m/flat/can55fz1osam+852bmqdj+kgfg+07knj6dm3pjbgbtyak4qw...@mail.gmail.com
---
 .cirrus.star        |  3 ++-
 .cirrus.tasks.yml   | 14 ++++++++++++--
 src/tools/ci/README |  4 ++--
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/.cirrus.star b/.cirrus.star
index e9bb672b959..cecd9bb026c 100644
--- a/.cirrus.star
+++ b/.cirrus.star
@@ -73,7 +73,7 @@ def compute_environment_vars():
     # REPO_CI_AUTOMATIC_TRIGGER_TASKS="task_name other_task" under "Repository
     # Settings" on Cirrus CI's website.
 
-    default_manual_trigger_tasks = ['mingw', 'netbsd', 'openbsd']
+    default_manual_trigger_tasks = ['mingw', 'netbsd', 'openbsd', 'vs2019']
 
     repo_ci_automatic_trigger_tasks = env.get('REPO_CI_AUTOMATIC_TRIGGER_TASKS', '')
     for task in default_manual_trigger_tasks:
@@ -103,6 +103,7 @@ def compute_environment_vars():
       'netbsd',
       'openbsd',
       'sanitycheck',
+      'vs2019',
       'windows',
     ]
     commit_message = env.get('CIRRUS_CHANGE_MESSAGE')
diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
index eca9d62fc22..07e32b588ea 100644
--- a/.cirrus.tasks.yml
+++ b/.cirrus.tasks.yml
@@ -752,7 +752,6 @@ WINDOWS_ENVIRONMENT_BASE: &WINDOWS_ENVIRONMENT_BASE
 
 
 task:
-  name: Windows - Server 2019, VS 2019 - Meson & ninja
   << : *WINDOWS_ENVIRONMENT_BASE
 
   env:
@@ -775,10 +774,21 @@ task:
       -Dplperl=enabled
       -Dplpython=enabled
 
+  matrix:
+    - name: Windows - Server 2022, VS 2019 - Meson & ninja
+      env:
+        # Use VS 2019
+        PATH: C:\VS_2019\VC\Auxiliary\Build;${PATH}
+      trigger_type: $CI_TRIGGER_TYPE_VS2019
+      only_if: $CI_VS2019_ENABLED
+
+    # VS 2022 is the default VS installation
+    - name: Windows - Server 2022, VS 2022 - Meson & ninja
+      only_if: $CI_WINDOWS_ENABLED
+
   <<: *windows_task_template
 
   depends_on: SanityCheck
-  only_if: $CI_WINDOWS_ENABLED
 
   setup_additional_packages_script: |
     REM choco install -y --no-progress ...
diff --git a/src/tools/ci/README b/src/tools/ci/README
index d183648a8d0..97426096f7a 100644
--- a/src/tools/ci/README
+++ b/src/tools/ci/README
@@ -61,7 +61,7 @@ Controlling CI via commit messages
 The behavior of CI can be controlled by special content in commit
 messages. Currently the following controls are available:
 
-- ci-os-only: {(freebsd|linux|macos|mingw|netbsd|openbsd|windows)}
+- ci-os-only: {(freebsd|linux|macos|mingw|netbsd|openbsd|vs2019|windows)}
 
   Only runs CI on operating systems specified. This can be useful when
   addressing portability issues affecting only a subset of platforms.
@@ -92,4 +92,4 @@ credits too quickly. This can be changed on the repository level, e.g. when
 custom compute resources are configured.
 
 The following repository level environment variables are recognized:
-- REPO_CI_AUTOMATIC_TRIGGER_TASKS - space-separated list of (mingw|netbsd|openbsd)
+- REPO_CI_AUTOMATIC_TRIGGER_TASKS - space-separated list of (mingw|netbsd|openbsd|vs2019)
-- 
2.51.0

Reply via email to