Replies: 53 comments 20 replies
-
Hi @Shereef - thanks much for the feedback. Our initial design was focused on deployment scenarios, but we want to address the use case that you've outlined. I appreciate you outlining this so nicely and providing these suggestions. I hope that this is an area that we can address in the future. Thanks again. |
Beta Was this translation helpful? Give feedback.
-
The desired behavior here, I believe, would be for jobs with the same |
Beta Was this translation helpful? Give feedback.
-
I think I just need the same, but add to a queue instead of cancel the workflow. I meant, don't run un parallel but in serial instead This will help, for example, use the same build result or cache in multiple runs for the same commit. The first one will create the artifacts/cache and the next one will be faster |
Beta Was this translation helpful? Give feedback.
-
Was surprised to see that canceling previous runs was the only option officially supported -- waiting and executing sequentially is what I need and seems to me like a clear usecase (canceling a deployment could result in a broken state) So far I've found this Action: https://github.com/ahmadnassri/action-workflow-queue But ideally, workflows sitting waiting for previous workflows to finish wouldn't consume action minutes in an official feature. |
Beta Was this translation helpful? Give feedback.
-
Would be great to be able to queue workflow runs (ideally without consuming action minutes). Was surprised that new runs cancel existing ones by default. |
Beta Was this translation helpful? Give feedback.
-
We hit this limitation while testing out the Merge Queue feature that is currently in limited beta. Our use case is ensuring that only one workflow is running for the PR at the top of the merge queue. When concurrency is set at the workflow level (for the merge_group event type) and multiple PRs are queued within the merge queue, the system cancels queued check suites once a new PR is added to the queue. It would be fantastic if we had the ability to disable canceling queued jobs! |
Beta Was this translation helpful? Give feedback.
-
If you're using self-hosted runners, a workaround/hack we used was to label one of these runners specifically, and then make all the jobs that need to be in a concurrency group just run on this labelled runner instead. No concurrency shenanigans. That causes them to queue up globally across all workflows without any caps on number of waiting jobs. The only major limitation is that if this runner fails, these jobs won't use any other runner. That was considered an acceptable risk to unblock us until we had a better solution. |
Beta Was this translation helpful? Give feedback.
-
My team also needs this feature. |
Beta Was this translation helpful? Give feedback.
-
My team also needs this. |
Beta Was this translation helpful? Give feedback.
-
My team also need this feature - mainly for queueing mulitple actions each with Terraform plan/deploy steps which cannot be run at same time due to a lock on terraform state. |
Beta Was this translation helpful? Give feedback.
-
A must have for my team |
Beta Was this translation helpful? Give feedback.
-
Really needing this to be implemented. I am currently using https://github.com/ben-z/gh-action-mutex for now, but this does pollute the git history. |
Beta Was this translation helpful? Give feedback.
-
Need this feature too. |
Beta Was this translation helpful? Give feedback.
-
GitHub, I'll add my team's need for this feature as well. I see a LONG list of replies like this, with no response from GitHub. (I'm in DevOps.) I'm going to put in a GitHub support ticket referencing this request to see if there are any plans to implement it. Our use cases is that I have created a highly parallelized building and deploying four distinct services in a monorepo. In this workflow, the update_service action is called by the jobs for each of those services, AND we have a very active CI/CD environment which can be processing several merges almost simultaneously. While I am discussing the use of the current concurrency model (cancel all pending workflow runs except the latest), until and unless that gets the green light our workflow runs will continue to risk colliding and corrupting the shared deployment environment with competing service updates. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the feature request, we need this feature |
Beta Was this translation helpful? Give feedback.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
Another usecase for this would be to process a larger amount of pull requests (like from dependabot or renovate) in a sequential manner. Test/Verify PR -> Merge to Main -> update all PRs -> repeat (with one of the outstanding PRs only without kicking off all the jobs in parallel and then cancelling all but the last) |
Beta Was this translation helpful? Give feedback.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
+1 "cancel-pending:false" |
Beta Was this translation helpful? Give feedback.
-
+1 "cancel-pending:false" |
Beta Was this translation helpful? Give feedback.
-
+1 for ability to set cancel-in-queue: false |
Beta Was this translation helpful? Give feedback.
-
+1 for ability to set cancel-in-queue: false |
Beta Was this translation helpful? Give feedback.
-
Unbelievable how this basic feature is not available and how no one from GitHub is replying here. |
Beta Was this translation helpful? Give feedback.
-
2 years later, no fix / workaround ? |
Beta Was this translation helpful? Give feedback.
-
+1 any news on this???? |
Beta Was this translation helpful? Give feedback.
-
Current behavior
Desired behavior
Sorry if this was discussed before I tried to search but didn't find anything.
Our current implementation
To give it more context:
Imagine this scenario:
We have 5 PRs for Team A
We merge to main and update the 5 PRs
All 5 will want to deploy to the env + the main branch deploy that is ongoing
the last PR to merge is going to be queued
all other PRs will be cancelled and have to be retried manually
Suggested solutions
one of the below would work
cancel-in-queue: false
a new command to disable cancelling queuing jobscancel-in-progress: false
would not cancel anything and leave everything in queueBeta Was this translation helpful? Give feedback.
All reactions