use of hudson.FilePath in project hudson-2.x by hudson.
the class InstallPluginCommand method run.
protected int run() throws Exception {
Hudson h = Hudson.getInstance();
h.checkPermission(Hudson.ADMINISTER);
for (String source : sources) {
// is this a file?
FilePath f = new FilePath(channel, source);
if (f.exists()) {
stdout.println(Messages.InstallPluginCommand_InstallingPluginFromLocalFile(f));
if (name == null)
name = f.getBaseName();
f.copyTo(getTargetFile());
continue;
}
// is this an URL?
try {
URL u = new URL(source);
stdout.println(Messages.InstallPluginCommand_InstallingPluginFromUrl(u));
if (name == null) {
name = u.getPath();
name = name.substring(name.indexOf('/') + 1);
name = name.substring(name.indexOf('\\') + 1);
int idx = name.lastIndexOf('.');
if (idx > 0)
name = name.substring(0, idx);
}
getTargetFile().copyFrom(u);
continue;
} catch (MalformedURLException e) {
// not an URL
}
// is this a plugin the update center?
UpdateSite.Plugin p = h.getUpdateCenter().getPlugin(source);
if (p != null) {
stdout.println(Messages.InstallPluginCommand_InstallingFromUpdateCenter(source));
p.deploy().get();
continue;
}
stdout.println(Messages.InstallPluginCommand_NotAValidSourceName(source));
if (!source.contains(".") && !source.contains(":") && !source.contains("/") && !source.contains("\\")) {
// looks like a short plugin name. Why did we fail to find it in the update center?
if (h.getUpdateCenter().getSites().isEmpty()) {
stdout.println(Messages.InstallPluginCommand_NoUpdateCenterDefined());
} else {
Set<String> candidates = new HashSet<String>();
for (UpdateSite s : h.getUpdateCenter().getSites()) {
Data dt = s.getData();
if (dt == null) {
stdout.println(Messages.InstallPluginCommand_NoUpdateDataRetrieved(s.getUrl()));
} else {
candidates.addAll(dt.plugins.keySet());
}
}
stdout.println(Messages.InstallPluginCommand_DidYouMean(source, EditDistance.findNearest(source, candidates)));
}
}
return 1;
}
if (restart)
h.restart();
// all success
return 0;
}
use of hudson.FilePath in project blueocean-plugin by jenkinsci.
the class PipelineStepImpl method convert.
private Object convert(String name, ParameterValue v) throws IOException, InterruptedException {
if (v instanceof FileParameterValue) {
FileParameterValue fv = (FileParameterValue) v;
FilePath fp = new FilePath(node.getRun().getRootDir()).child(name);
fp.copyFrom(fv.getFile());
return fp;
} else {
return v.getValue();
}
}
use of hudson.FilePath in project blueocean-plugin by jenkinsci.
the class PipelineApiTest method testArtifactsRunApi.
@Test
public void testArtifactsRunApi() throws Exception {
FreeStyleProject p = j.createFreeStyleProject("pipeline1");
p.getBuildersList().add(new TestBuilder() {
@Override
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
FilePath ws = build.getWorkspace();
if (ws == null) {
return false;
}
FilePath dir = ws.child("dir");
dir.mkdirs();
dir.child("fizz").write("contents", null);
dir.child("lodge").symlinkTo("fizz", listener);
return true;
}
});
ArtifactArchiver aa = new ArtifactArchiver("dir/fizz");
aa.setAllowEmptyArchive(true);
p.getPublishersList().add(aa);
FreeStyleBuild b = j.assertBuildStatusSuccess(p.scheduleBuild2(0));
List artifacts = get("/organizations/jenkins/pipelines/pipeline1/runs/" + b.getId() + "/artifacts", List.class);
assertEquals(1, artifacts.size());
assertEquals("fizz", ((Map) artifacts.get(0)).get("name"));
}
use of hudson.FilePath in project violations-plugin by jenkinsci.
the class ViolationsMavenReporter method end.
@Override
public boolean end(MavenBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
registered = false;
FilePath htmlPath = new FilePath(new File(build.getProject().getRootDir(), VIOLATIONS));
FilePath targetPath = new FilePath(new File(build.getRootDir(), VIOLATIONS));
FilePath workspace = build.getWorkspace();
if (workspace == null) {
MavenModuleSetBuild parent = build.getModuleSetBuild();
throw new IOException("No workspace for " + build + "; parent workspace: " + (parent != null ? parent.getWorkspace() : "N/A") + "; builtOnStr=" + build.getBuiltOnStr() + "; builtOn=" + build.getBuiltOn());
}
ViolationsReport report = workspace.act(new ViolationsCollector(true, targetPath, htmlPath, config));
report.setConfig(config);
report.setBuild(build);
report.setBuildResult();
ViolationsBuildAction buildAction = getCreateBuildAction(build);
buildAction.setReport(report);
return true;
}
use of hudson.FilePath in project violations-plugin by jenkinsci.
the class ViolationsReportBuilder method perform.
public ViolationsReportAsserter perform() throws Exception {
ViolationsConfig config = new ViolationsConfig();
config.setSourcePathPattern(sourcePathPattern);
TypeConfig typeConfig = new TypeConfig(typeDescriptor.getName());
typeConfig.setPattern(sourcePathPattern);
config.getTypeConfigs().put(typeDescriptor.getName(), typeConfig);
FilePath workspace = new FilePath(projectRootDir());
FilePath targetPath = new FilePath(new File(projectRootDir().getPath() + "/" + VIOLATIONS));
FilePath htmlPath = new FilePath(projectRootDir());
AbstractBuild<?, ?> build = mock(Build.class);
when(build.getRootDir()).thenReturn(projectRootDir());
BuildListener listener = mock(BuildListener.class);
ViolationsReport violationsReport = createBuildAction(workspace, targetPath, htmlPath, config, build, listener).getReport();
return assertThat(violationsReport, typeDescriptor);
}
Aggregations