# Abort existing builds based on build parameter equality when new commit detected

**URL:** <https://community.jenkins.io/t/abort-existing-builds-based-on-build-parameter-equality-when-new-commit-detected/8837>\
**Category:** Using Jenkins\
**Tags:** question, git\
**Created:** [August 4, 2023, 1:55am UTC](https://community.jenkins.io/t/abort-existing-builds-based-on-build-parameter-equality-when-new-commit-detected/8837 "2023-08-04T01:55:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![JonnyPowerRec](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/jonnypowerrec/32/5106_2.png) [@JonnyPowerRec](https://community.jenkins.io/u/JonnyPowerRec)\
**Post date:** [August 4, 2023, 1:55am UTC](https://community.jenkins.io/t/abort-existing-builds-based-on-build-parameter-equality-when-new-commit-detected/8837/1 "2023-08-04T01:55:50Z")

</div>

Hi,

We have an active repository on github, where PRs will be automatically rebased when their base gets a push.

We also have builds that take hours to complete.

During periods of high merge activity this overwhelms our server’s executors with builds that are on commits no longer attached to branch/PRs due to rebase and force push.

How can I automatically abort these builds, so only the latest version of a branch is building? (We use branch as a build parameter, hence determining “same” via parameters would be ideal). These are freestyle declarative jobs using git.

This seems harder than I’d expected!

Thanks,  
Jonny

## Jenkins setup: Jenkins: 2.401.3 OS: Linux - 5.4.0-1103-aws Java: 11.0.19 - Ubuntu (OpenJDK 64-Bit Server VM)

allure-jenkins-plugin:2.30.3  
ansicolor:1.0.2  
ant:497.v94e7d9fffa\_b\_9  
antisamy-markup-formatter:159.v25b\_c67cd35fb\_  
apache-httpcomponents-client-4-api:4.5.14-150.v7a\_b\_9d17134a\_5  
atlassian-jira-software-cloud:2.0.7  
authentication-tokens:1.53.v1c90fd9191a\_b\_  
aws-credentials:191.vcb\_f183ce58b\_9  
aws-java-sdk:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-cloudformation:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-codebuild:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-ec2:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-ecr:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-ecs:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-efs:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-elasticbeanstalk:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-iam:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-kinesis:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-logs:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-minimal:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-sns:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-sqs:1.12.481-392.v8b\_291cfcda\_09  
aws-java-sdk-ssm:1.12.481-392.v8b\_291cfcda\_09  
bootstrap5-api:5.3.0-1  
bouncycastle-api:2.29  
branch-api:2.1122.v09cb\_8ea\_8a\_724  
build-timeout:1.31  
build-user-vars-plugin:1.9  
caffeine-api:3.1.6-115.vb\_8b\_b\_328e59d8  
checks-api:2.0.0  
cloudbees-folder:6.815.v0dd5a\_cb\_40e0e  
command-launcher:100.v2f6722292ee8  
commons-lang3-api:3.12.0-36.vd97de6465d5b\_  
commons-text-api:1.10.0-36.vc008c8fcda\_7b\_  
conditional-buildstep:1.4.2  
credentials:1268.v3f0d043d60e9  
credentials-binding:604.vb\_64480b\_c56ca\_  
cvs:2.19.1  
dark-theme:336.v02165cd8c2ee  
data-tables-api:1.13.5-1  
display-url-api:2.3.7  
docker-commons:439.va\_3cb\_0a\_6a\_fb\_29  
docker-workflow:563.vd5d2e5c4007f  
durable-task:510.v324450f8dca\_4  
ec2-fleet:2.7.1  
echarts-api:5.4.0-5  
email-ext:2.99  
embeddable-build-status:395.v96b\_260870c38  
envinject:2.901.v0038b\_6471582  
envinject-api:1.199.v3ce31253ed13  
extended-read-permission:53.v6499940139e5  
extensible-choice-parameter:1.8.1  
external-monitor-job:207.v98a\_a\_37a\_85525  
favorite:2.4.2  
font-awesome-api:6.4.0-2  
git:5.2.0  
git-client:4.4.0  
git-parameter:0.9.19  
git-server:99.va\_0826a\_b\_cdfa\_d  
github:1.37.1  
github-api:1.314-431.v78d72a\_3fe4c3  
github-branch-source:1728.v859147241f49  
github-checks:545.v79a\_a\_68b\_ca\_682  
gradle:2.8.1  
greenballs:1.15.1  
handy-uri-templates-2-api:2.1.8-22.v77d5b\_75e6953  
htmlpublisher:1.31  
instance-identity:173.va\_37c494ec4e5  
ionicons-api:56.v1b\_1c8c49374e  
jackson2-api:2.15.2-350.v0c2f3f8fc595  
jakarta-activation-api:2.0.1-3  
jakarta-mail-api:2.0.1-3  
javadoc:233.vdc1a\_ec702cff  
javax-activation-api:1.2.0-6  
javax-mail-api:1.6.2-9  
jaxb:2.3.8-1  
jdk-tool:66.vd8fa\_64ee91b\_d  
jenkins-design-language:1.27.4  
jersey2-api:2.40-1  
jira:3.10  
jjwt-api:0.11.5-77.v646c772fddb\_0  
jnr-posix-api:3.1.17-1  
jobConfigHistory:1227.v7a\_79fc4dc01f  
jquery:1.12.4-1  
jquery3-api:3.7.0-1  
jsch:0.2.8-65.v052c39de79b\_2  
junit:1217.v4297208a\_a\_b\_ce  
last-changes:2.7.11  
ldap:682.v7b\_544c9d1512  
lockable-resources:1172.v4b\_8fc8eed570  
mailer:457.v3f72cb\_e015e5  
mapdb-api:1.0.9-28.vf251ce40855d  
matrix-auth:3.1.10  
matrix-project:789.v57a\_725b\_63c79  
maven-plugin:3.22  
mina-sshd-api-common:2.10.0-69.v28e3e36d18eb\_  
mina-sshd-api-core:2.10.0-69.v28e3e36d18eb\_  
okhttp-api:4.11.0-145.vcb\_8de402ef81  
pam-auth:1.10  
parameterized-trigger:2.46  
pipeline-build-step:496.v2449a\_9a\_221f2  
pipeline-github-lib:42.v0739460cda\_c4  
pipeline-graph-analysis:202.va\_d268e64deb\_3  
pipeline-groovy-lib:656.va\_a\_ceeb\_6ffb\_f7  
pipeline-input-step:468.va\_5db\_051498a\_4  
pipeline-milestone-step:111.v449306f708b\_7  
pipeline-model-api:2.2144.v077a\_d1928a\_40  
pipeline-model-definition:2.2144.v077a\_d1928a\_40  
pipeline-model-extensions:2.2144.v077a\_d1928a\_40  
pipeline-rest-api:2.33  
pipeline-stage-step:305.ve96d0205c1c6  
pipeline-stage-tags-metadata:2.2144.v077a\_d1928a\_40  
pipeline-stage-view:2.33  
plain-credentials:143.v1b\_df8b\_d3b\_e48  
plugin-usage-plugin:4.1  
plugin-util-api:3.3.0  
postbuild-task:1.9  
pubsub-light:1.17  
rebuild:320.v5a\_0933a\_e7d61  
resource-disposer:0.22  
role-strategy:670.vc71a\_a\_c00039e  
run-condition:1.6  
saml:4.418.vdfa\_7489a\_b\_a\_2d  
scm-api:676.v886669a\_199a\_a\_  
script-security:1251.vfe552ed55f8d  
slack:664.vc9a\_90f8b\_c24a\_  
snakeyaml-api:1.33-95.va\_b\_a\_e3e47b\_fa\_4  
sse-gateway:1.26  
ssh-credentials:305.v8f4381501156  
ssh-slaves:2.877.v365f5eb\_a\_b\_eec  
sshd:3.303.vefc7119b\_ec23  
structs:324.va\_f5d6774f3a\_d  
subversion:2.17.2  
theme-manager:193.vcef22f6c5f2b\_  
throttle-concurrents:2.14  
timestamper:1.25  
token-macro:359.vb\_cde11682e0c  
trilead-api:2.84.v72119de229b\_7  
uno-choice:2.6.5  
variant:59.vf075fe829ccb  
workflow-aggregator:596.v8c21c963d92d  
workflow-api:1241.v4edc8b\_44933b\_  
workflow-basic-steps:1017.vb\_45b\_302f0cea\_  
workflow-cps:3717.va\_180a\_fe9d3cd  
workflow-durable-task-step:1247.v7f9dfea\_b\_4fd0  
workflow-job:1316.vd2290d3341a\_f  
workflow-multibranch:756.v891d88f2cd46  
workflow-scm-step:415.v434365564324  
workflow-step-api:639.v6eca\_cd8c04a\_a\_  
workflow-support:839.v35e2736cfd5c  
ws-cleanup:0.45  
xray-connector:2.6.1

---

<div class="post-metadata">

**Author:** ![daotoan-hd](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/daotoan-hd/32/4716_2.png) [@daotoan-hd](https://community.jenkins.io/u/daotoan-hd)\
**Post date:** [August 4, 2023, 2:28am UTC](https://community.jenkins.io/t/abort-existing-builds-based-on-build-parameter-equality-when-new-commit-detected/8837/2 "2023-08-04T02:28:12Z")

</div>

This might help you:

> **[How can I abort a running Pipeline build if a new one is started?](https://docs.cloudbees.com/docs/cloudbees-ci-kb/latest/client-and-managed-controllers/pipeline-how-can-i-abort-a-running-build-if-a-new-one-is-started)**
>
> Since version 2.42 of the Pipeline: Job plugin, the recommended approach is to use the option disableConcurrentBuilds(abortPrevious: true):

---

<div class="post-metadata">

**Author:** ![JonnyPowerRec](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/jonnypowerrec/32/5106_2.png) [@JonnyPowerRec](https://community.jenkins.io/u/JonnyPowerRec)\
**Post date:** [August 4, 2023, 2:34am UTC](https://community.jenkins.io/t/abort-existing-builds-based-on-build-parameter-equality-when-new-commit-detected/8837/3 "2023-08-04T02:34:12Z")

</div>

Thanks! Is it possible to do this with a classic / free style declarative project or do we have to move to pipelines?

---

<div class="post-metadata">

**Author:** ![daotoan-hd](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/daotoan-hd/32/4716_2.png) [@daotoan-hd](https://community.jenkins.io/u/daotoan-hd)\
**Post date:** [August 4, 2023, 8:30am UTC](https://community.jenkins.io/t/abort-existing-builds-based-on-build-parameter-equality-when-new-commit-detected/8837/4 "2023-08-04T08:30:19Z")

</div>

I don’t see that option in freestyle project.  
Properlly it is not supported
