Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,44 @@
import hudson.model.InvisibleAction;

/*
* JiraEnvironmentVariableBuilder adds an instance of this class to the build to
* provide the environment variables
* JiraEnvironmentVariableBuilder adds an instance of this class to the build to provide the environment variables
*
*/
public class JiraEnvironmentContributingAction extends InvisibleAction implements EnvironmentContributingAction {

public static final String ISSUES_VARIABLE_NAME = "JIRA_ISSUES";
public static final String JIRA_URL_VARIABLE_NAME = "JIRA_URL";
public static final String ISSUES_SIZE_VARIABLE_NAME = "JIRA_ISSUES_SIZE";

private final String issuesList;

private final Integer issuesSize;

private final String jiraUrl;

public String getIssuesList() {
return issuesList;
}

public Integer getNumberOfIssues() {
return issuesSize;
}

public String getJiraUrl() {
return jiraUrl;
}

public JiraEnvironmentContributingAction(String issuesList, String jiraUrl) {
public JiraEnvironmentContributingAction(String issuesList, Integer issuesSize, String jiraUrl) {
this.issuesList = issuesList;
this.issuesSize = issuesSize;
this.jiraUrl = jiraUrl;
}

@Override
public void buildEnvVars(AbstractBuild<?, ?> ab, EnvVars ev) {
if (ev != null) {
ev.put(ISSUES_VARIABLE_NAME, issuesList);
ev.put(ISSUES_VARIABLE_NAME, getIssuesList());
ev.put(ISSUES_SIZE_VARIABLE_NAME, getNumberOfIssues().toString());
ev.put(JIRA_URL_VARIABLE_NAME, getJiraUrl());
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package hudson.plugins.jira;

import hudson.AbortException;
import hudson.Extension;
import hudson.Launcher;
import hudson.model.AbstractBuild;
Expand All @@ -12,6 +11,7 @@
import hudson.tasks.Builder;
import java.io.IOException;
import java.util.Set;
import jenkins.model.Jenkins;
import org.apache.commons.lang.StringUtils;
import org.kohsuke.stapler.DataBoundConstructor;

Expand Down Expand Up @@ -46,18 +46,23 @@ public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListen
JiraSite site = getSiteForProject(build.getProject());

if (site == null) {
throw new AbortException(Messages.JiraEnvironmentVariableBuilder_NoJiraSite());
listener.getLogger().println(Messages.JiraEnvironmentVariableBuilder_NoJiraSite());
return false;
}

Set<String> ids = getIssueSelector().findIssueIds(build, site, listener);

String idList = StringUtils.join(ids, ",");
Integer idListSize = ids.size();

listener.getLogger()
.println(Messages.JiraEnvironmentVariableBuilder_Updating(
JiraEnvironmentContributingAction.ISSUES_VARIABLE_NAME, idList));
listener.getLogger()
.println(Messages.JiraEnvironmentVariableBuilder_Updating(
JiraEnvironmentContributingAction.ISSUES_SIZE_VARIABLE_NAME, idListSize));

build.addAction(new JiraEnvironmentContributingAction(idList, site.getName()));
build.addAction(new JiraEnvironmentContributingAction(idList, idListSize, site.getName()));

return true;
}
Expand All @@ -77,5 +82,9 @@ public boolean isApplicable(Class<? extends AbstractProject> klass) {
public String getDisplayName() {
return Messages.JiraEnvironmentVariableBuilder_DisplayName();
}

public boolean hasIssueSelectors() {
return Jenkins.get().getDescriptorList(AbstractIssueSelector.class).size() > 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ public JiraVersionParameterDefinition(
String jiraShowReleased,
String jiraShowArchived,
String jiraShowUnreleased) {
super(name, description);
super(name);
setDescription(description);
setJiraProjectKey(jiraProjectKey);
setJiraReleasePattern(jiraReleasePattern);
setJiraShowReleased(jiraShowReleased);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<div>Available variables:</div>
<ul>
<li>JIRA_ISSUES - A comma separated list of issues which are referenced in the version control system changelog</li>
<li>JIRA_ISSUES_SIZE - Size of the list described above</li>
<li>JIRA_URL - Primary URL for the Jira server </li>
</ul>
<p>
Expand Down
Loading