Skip to content

Commit

Permalink
Do not run CI for documentation changes
Browse files Browse the repository at this point in the history
The github workflows are not run if the
changes are completely contained within
the doc/ subdirectory. The only exception
is the users-guide.yml github action.
  • Loading branch information
BinderDavid authored and Mikolaj committed Nov 7, 2023
1 parent 15b5b05 commit da6e0fe
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ jobs:
- uses: haskell-actions/hlint-run@v2
with:
path: "."
fail-on: suggestion
fail-on: suggestion
33 changes: 33 additions & 0 deletions .github/workflows/validate.skip.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Validate Skip

# This Workflow is special and contains a workaround for a known limitation of GitHub CI.
#
# The problem: We don't want to run the "validate" jobs on PRs which contain only changes
# to the docs, since these jobs take a long time to complete without providing any benefit.
# We therefore use path-filtering in the workflow triggers for the validate jobs, namely
# "paths_ignore: doc/**". But the "Validate post job" is a required job, therefore a PR cannot
# be merged unless the "Validate post job" completes succesfully, which it doesn't do if we
# filter it out.
#
# The solution: We use a second job with the same name which always returns the exit code 0.
# The logic implemented for "required" workflows accepts if 1) at least one job with that name
# runs through, AND 2) If multiple jobs of that name exist, then all jobs of that name have to
# finish successfully.
on:
push:
paths: 'doc/**'
branches:
- master
pull_request:
paths: 'doc/**'
release:
types:
- created

jobs:
validate-post-job:
if: always()
name: Validate post job
runs-on: ubuntu-latest
steps:
- run: exit 0
5 changes: 5 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,16 @@ concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

# Note: This workflow file contains the required job "Validate post job". We are using path filtering
# here to ignore PRs which only change documentation. This can cause a problem, see the workflow file
# "validate.skip.yml" for a description of the problem and the solution provided in that file.
on:
push:
paths-ignore: 'doc/**'
branches:
- master
pull_request:
paths-ignore: 'doc/**'
release:
types:
- created
Expand Down

0 comments on commit da6e0fe

Please sign in to comment.