On 25.09.23 12:56, Nazir Bilal Yavuz wrote:
> + # Only run if a specific OS is not requested and if there are changes in docs
> + # or in the CI files.
> + skip: >
> + $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:.*' ||
> + !changesInclude('doc/**',
> + '.cirrus.yml',
> + '.cirrus.tasks.yml',
> + 'src/backend/catalog/sql_feature_packages.txt',
> + 'src/backend/catalog/sql_features.txt',
> + 'src/backend/utils/errcodes.txt',
> + 'src/backend/utils/activity/wait_event_names.txt',
> + 'src/backend/utils/activity/generate-wait_event_types.pl',
> + 'src/include/parser/kwlist.h')
This is kind of annoying. Now we need to maintain yet another list of
these dependencies and keep it in sync with the build systems.
I think meson can produce a dependency tree from a build. Maybe we
could use that somehow and have Cirrus cache it between runs?
Also note that there are also dependencies in the other direction. For
example, the psql help is compiled from XML DocBook sources. So your
other patch would also need to include similar changesInclude() clauses.