Cancel running jobs when new ones are started for a PR
It can easily happen that a PR can receive a push or a /packit copr-build command and then another one in a short time-span.
In order to not to waste resources and avoid publishing results from a parallel set of jobs into the same PR, we should cancel old jobs (builds, tests) and submit new ones.
Breakdown
- [x] https://github.com/packit/packit/issues/2534
- [x] https://github.com/packit/packit-service/issues/2725
- [x] https://github.com/packit/packit-service/issues/2727
- [ ] https://github.com/packit/packit-service/issues/2800
- [ ] Improvements for Fedora CI
- [ ] https://github.com/packit/packit/issues/2535
- [ ] Improvements in general
- [ ] https://github.com/packit/packit-service/issues/2728
- [ ] https://github.com/packit/packit-service/issues/2729
- [ ] cancelling via GitHub Check Run action
- [ ] allow configurable behavior
- [ ] allow cancelling jobs for
committrigger
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I wonder if copr optimizes this on its own - cancels old builds if new are requested in a project.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
Thank you for your contributions.
We are doing this to be sure that the issue is still relevant. Anyone can comment to remove the stale state. (The issues marked with pinned, security, bug or EPIC label
are not considered stale.)
with postgres this can be now done so easily honestly
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
Thank you for your contributions.
We are doing this to be sure that the issue is still relevant. Anyone can comment to remove the stale state. (The issues marked with pinned, security, bug or EPIC label
are not considered stale.)
we should still investigate if copr can do this on it own
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned, security, bug or EPIC are never marked as stale.)
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned, security, bug or EPIC are never marked as stale.)
Related to #785
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
Still nice to have.
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
Can we bump priority here? @mrc0mmand mentioned this again when talking about expectations ("Error Budget").
Yes, sure. I am adding the issue to the project board so we can groom and plan for the next sprint(s).
We discussed the following approach today:
- Upgrade the pipeline-abstraction so that it's possible to tell if a pipeline is for a PR or branch is still in progress.
- Add a new celery task at the beginning of the pipeline which would check if there is an another pipeline already running for the PR or branch, and cancel the that pipeline.
- Cancelling the pipeline means:
- terminating SRPM builds if they are running
- terminating Copr builds if they are running
- terminating TF tests if they are running
- internally marking the pipeline as cancelled
- (GitHub flags should be already updated by this point, so we should just make sure they are not overwritten by the termination process).
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
Let's start with something more easier and doable in short-term:
- [ ] Terminate an old Copr build when submitting a new one.
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
This issue has been marked as stale because it hasn't seen any activity for the last 60 days.
Stale issues are closed after 14 days, unless the label is removed by a maintainer or someone comments on it.
This is done in order to ensure that open issues are still relevant.
Thank you for your contribution! :unicorn: :rocket: :robot:
(Note: issues labeled with pinned or EPIC are never marked as stale.)
We discussed this and decided we will drop this issue since we are not able to plan this in the near future and the implementation could be more complex (since the codebase changed a lot since opening this issue) and lead to race conditions.
Reopening given the increased user base and since it would help with resource management and address challenges such as handling outages where queues become overloaded. This would prevent unnecessary triggers of builds/tests when a pull request is updated during such outages.
This was also asked by @evgeni in the chat recently.
+1 to this RFE!
When I trigger copr building and integration test execution on https://github.com/oamg/convert2rhel PRs, that's a lot of jobs. When I trigger that all again, for example by pushing to the PR branch, before even copr builds are created then the Testing Farm jobs that follow up after copr builds don't need to be even run. That might even save some GitHub App requests which are limited and our project has been hiting the limit https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?primary-rate-limit-for-github-app-installations=&apiVersion=2022-11-28#primary-rate-limit-for-github-app-installations.