diff --git a/extensions/workflows/bump_version.yml b/extensions/workflows/bump_version.yml index 25a283d5420441782ba080b382ee7c4b42135882..8e79c280b935c5e8a2781ae0ef51047b6a9c3f65 100644 --- a/extensions/workflows/bump_version.yml +++ b/extensions/workflows/bump_version.yml @@ -46,3 +46,6 @@ jobs: with: bump-type: ${{ needs.determine_bump_type.outputs.bump_type }} force-bump: true +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anyshalabels' }} + cancel-in-progress: true diff --git a/extensions/workflows/run_tests.yml b/extensions/workflows/run_tests.yml index aea03213e6b99863a7290facb0231a6646126843..b7b0c66691182bb0bcf96ad295f843eacd8233be 100644 --- a/extensions/workflows/run_tests.yml +++ b/extensions/workflows/run_tests.yml @@ -9,5 +9,5 @@ jobs: call_extension_tests: uses: zed-industries/zed/.github/workflows/extension_tests.yml@main concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anyshapr' }} cancel-in-progress: true diff --git a/tooling/xtask/src/tasks/workflows/extensions/bump_version.rs b/tooling/xtask/src/tasks/workflows/extensions/bump_version.rs index 58ab69c47ff7315a6835a0da1e930c97223a1c70..4eedb912d17a9c954d36fc38c7e19a593374ae8a 100644 --- a/tooling/xtask/src/tasks/workflows/extensions/bump_version.rs +++ b/tooling/xtask/src/tasks/workflows/extensions/bump_version.rs @@ -7,7 +7,7 @@ use indoc::indoc; use crate::tasks::workflows::{ runners, steps::{NamedJob, named}, - vars::{self, JobOutput, StepOutput}, + vars::{self, JobOutput, StepOutput, one_workflow_per_non_main_branch_and_token}, }; pub(crate) fn bump_version() -> Workflow { @@ -20,6 +20,7 @@ pub(crate) fn bump_version() -> Workflow { .on(Event::default() .push(Push::default().add_branch("main")) .pull_request(PullRequest::default().add_type(PullRequestType::Labeled))) + .concurrency(one_workflow_per_non_main_branch_and_token("labels")) .add_job(determine_bump_type.name, determine_bump_type.job) .add_job(call_bump_version.name, call_bump_version.job) } diff --git a/tooling/xtask/src/tasks/workflows/extensions/run_tests.rs b/tooling/xtask/src/tasks/workflows/extensions/run_tests.rs index ffcaecf3919a0c5b3948ef3004a3886939c95cf4..4e900e839d917bfa9920b12a4bd4a759fa1f31b7 100644 --- a/tooling/xtask/src/tasks/workflows/extensions/run_tests.rs +++ b/tooling/xtask/src/tasks/workflows/extensions/run_tests.rs @@ -2,14 +2,14 @@ use gh_workflow::{Event, Job, PullRequest, UsesJob, Workflow}; use crate::tasks::workflows::{ steps::{NamedJob, named}, - vars::one_workflow_per_non_main_branch, + vars::one_workflow_per_non_main_branch_and_token, }; pub(crate) fn run_tests() -> Workflow { let call_extension_tests = call_extension_tests(); named::workflow() .on(Event::default().pull_request(PullRequest::default().add_branch("**"))) - .concurrency(one_workflow_per_non_main_branch()) + .concurrency(one_workflow_per_non_main_branch_and_token("pr")) .add_job(call_extension_tests.name, call_extension_tests.job) } diff --git a/tooling/xtask/src/tasks/workflows/vars.rs b/tooling/xtask/src/tasks/workflows/vars.rs index b5a3085a4955db75ca8abfc395e8755a235451ff..5c3f81bce86ea4986320b7baa62e4cfa13c83520 100644 --- a/tooling/xtask/src/tasks/workflows/vars.rs +++ b/tooling/xtask/src/tasks/workflows/vars.rs @@ -80,8 +80,18 @@ pub fn bundle_envs(platform: Platform) -> Env { } pub fn one_workflow_per_non_main_branch() -> Concurrency { + one_workflow_per_non_main_branch_and_token("") +} + +pub fn one_workflow_per_non_main_branch_and_token>(token: T) -> Concurrency { Concurrency::default() - .group("${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}") + .group(format!( + concat!( + "${{{{ github.workflow }}}}-${{{{ github.ref_name }}}}-", + "${{{{ github.ref_name == 'main' && github.sha || 'anysha{}' }}}}" + ), + token.as_ref() + )) .cancel_in_progress(true) }