From d155c42a96a1735b4f78d90e05c3cbb93eb99f7a Mon Sep 17 00:00:00 2001 From: Guixian Zhang Date: Wed, 6 Jan 2021 11:45:46 +0800 Subject: [PATCH] fix: workflow job abort error --- .../jenkins/trigger/GiteePushTrigger.java | 2 +- .../AbstractWebHookTriggerHandler.java | 21 ++++++++++++++++--- .../note/NoteHookTriggerHandlerImpl.java | 5 +---- .../PullRequestHookTriggerHandlerImpl.java | 5 +---- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/gitee/jenkins/trigger/GiteePushTrigger.java b/src/main/java/com/gitee/jenkins/trigger/GiteePushTrigger.java index 0266431..86c67ab 100644 --- a/src/main/java/com/gitee/jenkins/trigger/GiteePushTrigger.java +++ b/src/main/java/com/gitee/jenkins/trigger/GiteePushTrigger.java @@ -76,7 +76,7 @@ public class GiteePushTrigger extends Trigger> { private boolean triggerOnNoteRequest = true; private String noteRegex = ""; private transient boolean ciSkip = true; - private BuildInstructionFilterType buildInstructionFilterType; + private BuildInstructionFilterType buildInstructionFilterType = BuildInstructionFilterType.NONE; private boolean skipWorkInProgressPullRequest; private boolean ciSkipFroTestNotRequired; private boolean skipLastCommitHasBeenBuild; diff --git a/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java b/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java index 158b508..d86220e 100644 --- a/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java +++ b/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java @@ -8,9 +8,7 @@ import com.gitee.jenkins.trigger.filter.BranchFilter; import com.gitee.jenkins.trigger.filter.BuildInstructionFilter; import com.gitee.jenkins.trigger.filter.PullRequestLabelFilter; import com.gitee.jenkins.util.LoggerUtil; -import hudson.model.Action; -import hudson.model.CauseAction; -import hudson.model.Job; +import hudson.model.*; import hudson.plugins.git.GitSCM; import hudson.plugins.git.RevisionParameterAction; import hudson.scm.SCM; @@ -19,7 +17,10 @@ import jenkins.triggers.SCMTriggerItem; import net.karneim.pojobuilder.GeneratePojoBuilder; import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.URIish; +import org.jenkinsci.plugins.workflow.job.WorkflowRun; +import javax.servlet.ServletException; +import java.io.IOException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.HashSet; @@ -144,6 +145,20 @@ public abstract class AbstractWebHookTriggerHandler implement return null; } + protected void doStop(Run build) throws IOException, ServletException { + if (build.isBuilding()) { + if (build instanceof AbstractBuild) { + ((AbstractBuild) build).doStop(); + LOGGER.log(Level.WARNING, "Abort incomplete build"); + } else if (build instanceof WorkflowRun) { + ((WorkflowRun) build).doStop(); + LOGGER.log(Level.WARNING, "Abort incomplete build"); + } else { + LOGGER.log(Level.WARNING, "Unable to abort incomplete build, build type not found: " + build.getClass().getName()); + } + } + } + public static class BuildStatusUpdate { private final Integer projectId; private final String sha; diff --git a/src/main/java/com/gitee/jenkins/trigger/handler/note/NoteHookTriggerHandlerImpl.java b/src/main/java/com/gitee/jenkins/trigger/handler/note/NoteHookTriggerHandlerImpl.java index 9dcdd3d..22108c0 100644 --- a/src/main/java/com/gitee/jenkins/trigger/handler/note/NoteHookTriggerHandlerImpl.java +++ b/src/main/java/com/gitee/jenkins/trigger/handler/note/NoteHookTriggerHandlerImpl.java @@ -123,10 +123,7 @@ class NoteHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler && causeData.getTargetRepoHttpUrl().equals(hook.getPullRequest().getTarget().getGitHttpUrl()) && causeData.getRef().equals(hook.getPullRequest().getMergeReferenceName())) { try { - if (build.isBuilding()) { - ((AbstractBuild) build).doStop(); - LOGGER.log(Level.WARNING, "Abort incomplete build"); - } + doStop(build); } catch (ServletException | IOException e) { LOGGER.log(Level.WARNING, "Unable to abort incomplete build", e); } diff --git a/src/main/java/com/gitee/jenkins/trigger/handler/pull/PullRequestHookTriggerHandlerImpl.java b/src/main/java/com/gitee/jenkins/trigger/handler/pull/PullRequestHookTriggerHandlerImpl.java index a0b3fe9..4899f89 100644 --- a/src/main/java/com/gitee/jenkins/trigger/handler/pull/PullRequestHookTriggerHandlerImpl.java +++ b/src/main/java/com/gitee/jenkins/trigger/handler/pull/PullRequestHookTriggerHandlerImpl.java @@ -174,10 +174,7 @@ class PullRequestHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler