There can be a number of reasons that pull requests are not triggering jobs and a number of reasons can be found below along with solutions to each.
If you revoked OAuth access to CircleCI on your VCS provider (GitHub, BitBucket)
If you revoke OAuth access to the CircleCI app on your VCS provider it will disable the keys that we used to authorize your account. We do not receive notifications when the auth is revoked, and may still attempt to use the now revoked auth.
For instance, you may encounter this when trying to submit a PR to an open source project that uses CircleCI and it does not trigger. If you encounter this issue submit a support ticket and we can resolve this issue for you. Open source projects also typically open projects against forks, so please be sure "Build forked pull requests" is enabled in Project Settings > Advanced.
If you're following the fork instead of the upstream repo
A user who submits a pull request to your repository from a fork, but no pipeline is triggered with the pull request. This can happen when the user is following the project fork on their personal account rather than the project itself on CircleCI.
This will cause the jobs to trigger under the user's personal account. If the user is following a fork of the repository on CircleCI, we will only build on that fork and not the parent, so the parent’s PR will not get status updates.
In these cases, the user unfollows their fork of the project on CircleCI. This will trigger their jobs to run under the organization when they submit pull requests. Those users can optionally follow the source project if they wish to see the pipelines.
Note: This feature is not currently supported for BitBucket users.
If the branch and the pull request happen to be created simultaneously
When you see the error message "This project is configured to only run builds that have open pull requests associated with them. Update the 'Only build pull requests' setting to run this build."
This happens due to a race condition when a branch is created and a pull request is opened simultaneously. CircleCI will receive notification the branch was created, and will not run the build because it is not a pull request.
We will then receive a second notification of a pull request being opened, with the same commit hash. Since we will never run the same commit hash twice, the build is updated in the UI, but never ran.
To ensure this doesn't happen to builds with "Only build pull requests" turned on, you can disable the "Branch or tag creation" setting in Github. This will ensure that the only webhooks we receive are when the pull request is open.
How to find your webhook settings: https://support.circleci.com/hc/en-us/articles/360021511153-How-to-view-your-GitHub-WebHook-deliveries
Find this option, and uncheck the box.
Comments
Hi Yi,
This would mean following the project via the Projects page on the CircleCI UI - see our blog below -
To enable CI for forked pull requests, we go to the settings page for our project within CircleCI and choose Build Settings > Advanced Settings and enable the “Build forked pull requests” option.
https://circleci.com/blog/triggering-trusted-ci-jobs-on-untrusted-forks/
Article is closed for comments.