Properly expire cache for **all** MRs of a pipeline
What does this MR do?
It ensures the Etag cache gets expired for all MRs for which the pipeline runs/ran against, and not just the MRs for which the pipeline runs/ran on the latest commit.
To ensure the state transitions of the pipelines are not slowed down, the
ExpirePipelineCacheService is transformed into a worker.
Are there points in the code the reviewer needs to double check?
The performance of the query in
What are the relevant issue numbers?
Closes #31040 (closed).
EE port gitlab-ee!1680 (closed)