Merge pull request #10592 from cabalism/typo/respositories
[cabal.git] / .github / workflows / bootstrap.skip.yml
blob40ccb0ae9bc50508c320fca4a2603470c524d47a
1 name: Bootstrap 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 "bootstrap" 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 bootstrap jobs, namely
8 # "paths-ignore: doc/**". But the "Bootstrap post job" is a required job, therefore a PR cannot
9 # be merged unless the "Bootstrap 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   bootstrap-post-job:
44     if: always()
45     name: Bootstrap post job
46     runs-on: ubuntu-latest
47     steps:
48       - run: exit 0