Can CircleCI be configured to re-run workflows for PRs?

Hi there :wave:
I’m working on a monorepo with a lot of PRs and a main branch that moves fast. For each job in the default workflow (which runs on each commit/PR), the latest changes from the main branch are merged into the CI environment. This ensures the tests are run against somewhat recent version of main. The merge command is based on this comment.

It works great, but the problem is that these PRs often hang around for a few days, after which breaking changes have made it into the main branch. A reviewer comes along, sees the old successful checks and clicks merge. Then the main branch breaks.

A comprehensive solution is to employ something like bors/homu (Rust), GitHub merge-queues (beta), or SubmitQueue (Uber), but I think a simper solution (for now, at least) is to just automate re-running the checks on old PRs once a day. Or even remind reviewers to re-run the checks somehow.

Can CircleCI be configured to either:

  1. Re-run CI checks on open PRs only (not all commits) once a day?
  2. Somehow invalidate successful CI checks older than one day?

Another alternative is to write a robot which goes around telling old PRs to re-run the checks.

Any ideas here would be greatly appreciated. I’m looking for the smallest possible change to reduce the window between CI success and an actual merge.

Many thanks,
Thomas