-
Notifications
You must be signed in to change notification settings - Fork 232
/
SafeArchiveServingRunAction.java
51 lines (42 loc) · 1.58 KB
/
SafeArchiveServingRunAction.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package net.masterthought.jenkins;
import java.io.File;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.Collection;
import java.util.Collections;
import java.util.logging.Level;
import java.util.logging.Logger;
import hudson.model.Action;
import hudson.model.Run;
import javax.annotation.Nonnull;
import jenkins.model.RunAction2;
import jenkins.tasks.SimpleBuildStep;
/**
* Convenience implementation of {@link SafeArchiveServingAction} for runs that starts a scan on being attached to the
* build.
*/
public class SafeArchiveServingRunAction extends SafeArchiveServingAction implements RunAction2, SimpleBuildStep.LastBuildAction {
private static final Logger LOGGER = Logger.getLogger(SafeArchiveServingRunAction.class.getName());
private Run<?, ?> run;
public SafeArchiveServingRunAction(@Nonnull Run<?, ?> r, File rootDir, String urlName, String indexFile, String iconName, String title, String... safeExtensions) {
super(rootDir, urlName, indexFile, iconName, title, safeExtensions);
this.run = r;
}
@Override
public void onAttached(Run<?, ?> r) {
try {
this.run = r;
processDirectory();
} catch (IOException | NoSuchAlgorithmException ex) {
LOGGER.log(Level.WARNING, "Exception scanning " + r.getRootDir(), ex);
}
}
@Override
public void onLoad(Run<?, ?> r) {
this.run = r;
}
@Override
public Collection<? extends Action> getProjectActions() {
return Collections.singleton(new CucumberReportProjectAction(run.getParent()));
}
}