Hi, On Thu, Sep 12, 2024 at 05:21:43AM +0000, Bertrand Drouvot wrote: > Hi, > > On Wed, Sep 11, 2024 at 04:39:57PM +0300, Nazir Bilal Yavuz wrote: > > Hi, > > > > On Wed, 11 Sept 2024 at 15:36, Bertrand Drouvot > > <bertranddrouvot...@gmail.com> wrote: > > > > > > Hi hackers, > > > > > > While working on a new pg_logicalinspect module ([1]), I reached a point > > > where > > > all the CI tests were green except the compiler warnings one. Then, to > > > save time > > > addressing the issue, I modified the .cirrus.tasks.yml file to $SUBJECT. > > > > > > I think this could be useful for others too, so please find attached this > > > tiny > > > patch. > > > > +1 for this. I encountered the same issue before. > > Thanks for the feedback! > > > > > > Note that the patch does not add an extra "ci-task-only", but for > > > simplicity it > > > it renames ci-os-only to ci-task-only. > > > > I think this change makes sense. I gave a quick try to your patch with > > ci-task-only: ["", "linux", "compilerwarnings"] and it worked as > > expected. > > And for the testing.
Mandatory rebase attached. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
>From 504181905666fdada111c51ff2b682a86f88da5e Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <bertranddrouvot...@gmail.com> Date: Wed, 11 Sep 2024 11:01:41 +0000 Subject: [PATCH v2] 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(-) 19.6% src/tools/ci/ diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 5849cbb839a..5aac99e2666 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} @@ -598,7 +598,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 @@ -704,7 +704,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 ... @@ -742,8 +742,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 @@ -802,7 +802,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 12c1e7c308f..264e36ca6c6 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 -- 2.34.1