From 47a946ee03b45347b90b8cfe807f152c29a8a037 Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot Date: Wed, 11 Sep 2024 11:01:41 +0000 Subject: [PATCH] Allow CI to only run the compiler warnings task That could be useful to only run the CI compiler warnings task when addressing compiler warnings issues. Renaming ci-os-only to ci-task-only and adding filtering for the "compilerwarnings" task. --- .cirrus.tasks.yml | 20 ++++++++++---------- src/tools/ci/README | 7 ++++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 92057006c930..747bde804f38 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -72,7 +72,7 @@ task: # push-wait-for-ci cycle time a bit when debugging operating system specific # failures. Uses skip instead of only_if, as cirrus otherwise warns about # only_if conditions not matching. - skip: $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:.*' + skip: $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:.*' env: CPUS: 4 @@ -167,7 +167,7 @@ task: <<: *freebsd_task_template depends_on: SanityCheck - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*freebsd.*' + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*freebsd.*' sysinfo_script: | id @@ -257,7 +257,7 @@ task: matrix: - name: NetBSD - Meson - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*netbsd.*' + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*netbsd.*' env: OS_NAME: netbsd IMAGE_FAMILY: pg-ci-netbsd-postgres @@ -274,7 +274,7 @@ task: <<: *netbsd_task_template - name: OpenBSD - Meson - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*openbsd.*' + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*openbsd.*' env: OS_NAME: openbsd IMAGE_FAMILY: pg-ci-openbsd-postgres @@ -414,7 +414,7 @@ task: <<: *linux_task_template depends_on: SanityCheck - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*' + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*linux.*' ccache_cache: folder: ${CCACHE_DIR} @@ -613,7 +613,7 @@ task: <<: *macos_task_template depends_on: SanityCheck - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*' + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*(macos|darwin|osx).*' sysinfo_script: | id @@ -719,7 +719,7 @@ task: <<: *windows_task_template depends_on: SanityCheck - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*' + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*windows.*' setup_additional_packages_script: | REM choco install -y --no-progress ... @@ -758,8 +758,8 @@ task: # due to resource constraints we don't run this task by default for now trigger_type: manual # worth using only_if despite being manual, otherwise this task will show up - # when e.g. ci-os-only: linux is used. - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*mingw.*' + # when e.g. ci-task-only: linux is used. + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*mingw.*' # otherwise it'll be sorted before other tasks depends_on: SanityCheck @@ -818,7 +818,7 @@ task: # use always: to continue after failures. Task that did not run count as a # success, so we need to recheck SanityChecks's condition here ... depends_on: SanityCheck - only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-task-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-task-only:[^\n]*compilerwarnings.*' env: CPUS: 4 diff --git a/src/tools/ci/README b/src/tools/ci/README index 12c1e7c308fa..264e36ca6c62 100644 --- a/src/tools/ci/README +++ b/src/tools/ci/README @@ -61,10 +61,11 @@ 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-task-only: {(freebsd|linux|macos|mingw|netbsd|openbsd|windows|compilerwarnings)} - Only runs CI on operating systems specified. This can be useful when - addressing portability issues affecting only a subset of platforms. + Only runs CI on operating systems specified or only runs compiler warnings + checks. This can be useful when addressing portability issues affecting only a + subset of platforms or when addressing compiler warnings issues. Using custom compute resources for CI