changelogs are docs
[cabal.git] / .github / workflows / validate.skip.yml
blobf4aa50ae19120be2151d7acca77e3ba386653f0f
1 name: Validate Skip
3 # This Workflow is special and contains a workaround for a known limitation of GitHub CI.
5 # The problem: We don't want to run the "validate" jobs on PRs which contain only changes
6 # to the docs, since these jobs take a long time to complete without providing any benefit.
7 # We therefore use path-filtering in the workflow triggers for the validate jobs, namely
8 # "paths-ignore: doc/**". But the "Validate post job" is a required job, therefore a PR cannot
9 # be merged unless the "Validate post job" completes succesfully, which it doesn't do if we
10 # filter it out.
12 # The solution: We use a second job with the same name which always returns the exit code 0.
13 # The logic implemented for "required" workflows accepts if 1) at least one job with that name
14 # runs through, AND 2) If multiple jobs of that name exist, then all jobs of that name have to
15 # finish successfully.
16 on:
17   push:
18     paths:
19       - 'doc/**'
20       - '**/README.md'
21       - 'CONTRIBUTING.md'
22       - "changelog.d/**"
23       # only top level for these, because various test packages have them too
24       - "*/ChangeLog.md"
25       - "*/changelog.md"
26       - "release-notes/**"
27     branches:
28       - master
29   pull_request:
30     paths:
31       - 'doc/**'
32       - '**/README.md'
33       - 'CONTRIBUTING.md'
34       - "changelog.d/**"
35       - "*/ChangeLog.md"
36       - "*/changelog.md"
37       - "release-notes/**"
38   release:
39     types:
40       - created
42 jobs:
43   validate-post-job:
44     if: always()
45     name: Validate post job
46     runs-on: ubuntu-latest
47     steps:
48       - run: exit 0