Skip to content

Commit

Permalink
Fix JENKINS-12522
Browse files Browse the repository at this point in the history
  • Loading branch information
gboissinot committed Mar 31, 2012
1 parent a4f94a0 commit f6308fa
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 32 deletions.
Expand Up @@ -35,6 +35,7 @@
*/
public class ArtifactDeployerPublisher extends Recorder implements MatrixAggregatable, Serializable {

private boolean deployEvenBuildFail;
private List<ArtifactDeployerEntry> entries = Collections.emptyList();

public BuildStepMonitor getRequiredMonitorService() {
Expand Down Expand Up @@ -66,9 +67,22 @@ public boolean perform(hudson.model.AbstractBuild<?, ?> build, hudson.Launcher l
}


private boolean isPerformDeployment(AbstractBuild build) {
Result result = build.getResult();
if (result == null) {
return true;
}

if (deployEvenBuildFail) {
return true;
}

return build.getResult().isBetterOrEqualTo(Result.UNSTABLE);
}

public boolean _perform(hudson.model.AbstractBuild<?, ?> build, hudson.Launcher launcher, hudson.model.BuildListener listener) throws java.lang.InterruptedException, java.io.IOException {

if (build.getResult() == null || build.getResult().isBetterOrEqualTo(Result.SUCCESS)) {
if (isPerformDeployment(build)) {

listener.getLogger().println("[ArtifactDeployer] - Starting deployment from the post-action ...");
DeployedArtifactsActionManager deployedArtifactsService = DeployedArtifactsActionManager.getInstance();
Expand Down Expand Up @@ -146,6 +160,14 @@ public void setEntries(List<ArtifactDeployerEntry> entries) {
this.entries = entries;
}

public boolean isDeployEvenBuildFail() {
return deployEvenBuildFail;
}

public void setDeployEvenBuildFail(boolean deployEvenBuildFail) {
this.deployEvenBuildFail = deployEvenBuildFail;
}

@Extension
@SuppressWarnings("unused")
public static final class DeleteRemoteArtifact extends RunListener<AbstractBuild> {
Expand Down Expand Up @@ -270,6 +292,7 @@ public Publisher newInstance(StaplerRequest req, JSONObject formData) throws For
}
}
pub.setEntries(artifactDeployerEntries);
pub.setDeployEvenBuildFail(formData.getBoolean("deployEvenBuildFail"));
return pub;
}

Expand Down
@@ -1,56 +1,59 @@
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout"
xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">

<f:entry>

<f:repeatable var="deployedArtifact" items="${instance.entries}">

<table width="100%">

<f:entry field="includes" title="${%Files to deploy}">
<f:textbox name="artifactdeployer.entry.includes" value="${deployedArtifact.includes}"/>
</f:entry>
<f:entry field="includes" title="${%Files to deploy}">
<f:textbox name="artifactdeployer.entry.includes" value="${deployedArtifact.includes}"/>
</f:entry>

<f:entry field="remote" title="${%Remote directory}">
<f:textbox name="artifactdeployer.entry.remote" value="${deployedArtifact.remote}"/>
</f:entry>
<f:entry field="remote" title="${%Remote directory}">
<f:textbox name="artifactdeployer.entry.remote" value="${deployedArtifact.remote}"/>
</f:entry>

<f:advanced>
<f:advanced>

<f:entry field="excludes" title="${%Excludes}">
<f:entry field="excludes" title="${%Excludes}">
<f:textbox name="artifactdeployer.entry.excludes" value="${deployedArtifact.excludes}"/>
</f:entry>
</f:entry>

<f:entry field="flatten">
<f:entry field="flatten">
<f:checkbox name="artifactdeployer.entry.flatten" checked="${deployedArtifact.flatten}"/>
<label class="attach-previous">Flatten</label>
</f:entry>

<f:entry field="deleteRemote">
<f:checkbox name="artifactdeployer.entry.deleteRemote" checked="${deployedArtifact.deleteRemote}"/>
<f:entry field="deleteRemote">
<f:checkbox name="artifactdeployer.entry.deleteRemote"
checked="${deployedArtifact.deleteRemote}"/>
<label class="attach-previous">Clean-up remote directory before deployment</label>
</f:entry>
</f:entry>

<f:entry field="deleteRemoteArtifacts">
<f:checkbox name="artifactdeployer.entry.deleteRemoteArtifacts" checked="${deployedArtifact.deleteRemoteArtifacts}"/>
<f:entry field="deleteRemoteArtifacts">
<f:checkbox name="artifactdeployer.entry.deleteRemoteArtifacts"
checked="${deployedArtifact.deleteRemoteArtifacts}"/>
<label class="attach-previous">Delete remote artifacts when the build is deleted</label>
</f:entry>
</f:entry>

<f:entry>
<table style="width:100%">
<f:entry>
<table style="width:100%">
<f:optionalBlock
field="deleteRemoteArtifactsByScript"
name="artifactdeployer.entry.deleteRemoteArtifactsByScript"
checked="${deployedArtifact.deletedRemoteArtifactsByScript}"
title="${%Execute a groovy script when the job is deleted}">

<f:entry field="groovyExpression" title="${%Groovy Expression}">
<f:textarea name="artifactdeployer.entry.groovyExpression" value="${deployedArtifact.groovyExpression}"/>
</f:entry>
</f:optionalBlock>
</table>
field="deleteRemoteArtifactsByScript"
name="artifactdeployer.entry.deleteRemoteArtifactsByScript"
checked="${deployedArtifact.deletedRemoteArtifactsByScript}"
title="${%Execute a groovy script when the job is deleted}">

<f:entry field="groovyExpression" title="${%Groovy Expression}">
<f:textarea name="artifactdeployer.entry.groovyExpression"
value="${deployedArtifact.groovyExpression}"/>
</f:entry>
</f:optionalBlock>
</table>
</f:entry>

</f:advanced>
</f:advanced>

<f:entry title="">
<div align="right">
Expand All @@ -59,7 +62,14 @@
</f:entry>

</table>

</f:repeatable>

</f:entry>

<f:entry field="deployEvenBuildFail">
<f:checkbox name="instance.deployEvenBuildFail" checked="${instance.deployEvenBuildFail}"/>
<label class="attach-previous">${%Deploy even if the build is failed}</label>
</f:entry>

</j:jelly>

0 comments on commit f6308fa

Please sign in to comment.