Hi,
On Tue, 26 Sept 2023 at 13:48, Peter Eisentraut <peter@eisentraut.org> wrote:
>
> 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 agree.
>
> I think meson can produce a dependency tree from a build. Maybe we
> could use that somehow and have Cirrus cache it between runs?
I will check that.
>
> 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.
>
If there are more cases like this, it may not be worth it. Instead, we can just:
- Build the docs when the doc related files are changed (This still
creates a dependency like you said).
- Skip CI completely if the README files are changed.
What are your opinions on these?
Regards,
Nazir Bilal Yavuz
Microsoft