Configuring paths/ignore-paths on a required workflow doesn't work as expected

I want to implement the following requirements in a workflow:

  1. The workflow must be required. If a pull request build fails, I want it to be impossible to merge it. This could be implemented with a required status check.
  2. The workflow must only trigger on a pull request if it changes the paths that the workflow depends on. This could be achieved by configuring paths or paths-ignore.

Combining these two approaches yields a surprising effect: if a pull request doesn’t affect the paths configured on the workflow, the workflow doesn’t trigger (expected) but it still remains required and blocks merging the pull request (not expected).

Is this behavior expected? And if yes, how is it possible to implement the above requirements?

2 Likes