use of jetbrains.buildServer.agent.NoRunningBuildException in project teamcity-torrent-plugin by JetBrains.
the class TorrentArtifactCacheListener method onAfterAddOrUpdate.
public void onAfterAddOrUpdate(@NotNull File file) {
if (isTorrentFile(file))
return;
if (isTeamcityIVYFile(file))
return;
final String absolutePath = file.getAbsolutePath();
if (!myTorrentsManager.isTransportEnabled()) {
LOG.debug("Torrent plugin disabled. Won't seed " + absolutePath);
return;
}
if (!TorrentUtil.shouldCreateTorrentFor(file.length(), myConfiguration)) {
LOG.debug("Won't create torrent for " + absolutePath + ". Artifact is too small: " + file.length());
return;
}
String announceUrl = myConfiguration.getAnnounceUrl();
if (announceUrl == null)
return;
TorrentMetadata metadata;
try {
metadata = TorrentCreator.create(file, URI.create(announceUrl), "TeamCity Torrent Plugin");
} catch (Exception e) {
return;
}
if (myTorrentsSeeder.getClient().isSeeding(metadata)) {
LOG.debug("Already seeding " + absolutePath);
return;
}
File cacheCurrentBuildDir;
try {
cacheCurrentBuildDir = getCurrentBuildFolderCache();
} catch (NoRunningBuildException e) {
logWarningThatCacheCurrentBuildNotFound(absolutePath);
return;
}
if (cacheCurrentBuildDir == null) {
logWarningThatCacheCurrentBuildNotFound(absolutePath);
return;
}
if (!isChildFile(cacheCurrentBuildDir, file)) {
// reference to parent in relative path means that it is artifact from other build. We can skip it
return;
}
File createdTorrentFile = publishTorrentFileAndStartSeeding(file);
if (createdTorrentFile == null) {
return;
}
createTorrentFileCopyAndAddAsArtifact(createdTorrentFile, file, cacheCurrentBuildDir);
}
use of jetbrains.buildServer.agent.NoRunningBuildException in project teamcity-git by JetBrains.
the class SSHAgentServiceTest method check_classpath_is_correct.
public void check_classpath_is_correct() throws IOException {
File tempDir = createTempDir();
Mockery m = new Mockery();
BuildAgent agent = m.mock(BuildAgent.class);
BuildAgentConfiguration agentConf = m.mock(BuildAgentConfiguration.class);
CurrentBuildTracker buildTracker = m.mock(CurrentBuildTracker.class);
m.checking(new Expectations() {
{
allowing(agentConf).getConfigurationParameters();
will(returnValue(Collections.emptyMap()));
allowing(agentConf).getTempDirectory();
will(returnValue(tempDir));
allowing(buildTracker).getCurrentBuild();
will(throwException(new NoRunningBuildException()));
}
});
GitAgentSSHService agentSSHService = new GitAgentSSHService(agent, agentConf, new MockGitPluginDescriptor(), new MockVcsRootSshKeyManagerProvider(), buildTracker);
String scriptPath = agentSSHService.getScriptPath();
GeneralCommandLine commandLine = new GeneralCommandLine();
commandLine.setExePath(scriptPath);
commandLine.addParameter("localhost");
Map<String, String> env = new HashMap<>();
env.put(GitSSHHandler.TEAMCITY_DEBUG_SSH, "true");
commandLine.setEnvParams(env);
ExecResult res = SimpleCommandLineProcessRunner.runCommand(commandLine, new byte[0]);
then(res.getStderr()).doesNotContain("NoClassDefFoundError").doesNotContain("ClassNotFoundError");
}
Aggregations