use of com.thoughtworks.go.remote.AgentIdentifier in project gocd by gocd.
the class BuildWorkArtifactUploadingTest method shouldUploadFolderWhenDirectMatch.
@Test
public void shouldUploadFolderWhenDirectMatch() throws Exception {
ArtifactPlans artifactPlans = new ArtifactPlans();
artifactPlans.add(new ArtifactPlan("logs/pic-1", "mypic"));
BuildAssignment buildAssigment = createAssignment(artifactPlans, new String[] { "logs/pic-1/fail.png", "logs/pic-1/pass.png", "logs/pic-2/cancel.png", "logs/pic-2/complete.png", "README" });
BuildWork work = new BuildWork(buildAssigment);
GoArtifactsManipulatorStub manipulator = new GoArtifactsManipulatorStub();
AgentIdentifier agentIdentifier = new AgentIdentifier("somename", "127.0.0.1", AGENT_UUID);
work.doWork(agentIdentifier, new FakeBuildRepositoryRemote(), manipulator, environmentVariableContext, new AgentRuntimeInfo(agentIdentifier, AgentRuntimeStatus.Idle, currentWorkingDirectory(), "cookie", false), packageRepositoryExtension, scmExtension, taskExtension);
List<UploadEntry> entries = manipulator.uploadEntries();
assertThat(entries, uploadFileToDestination(new File(buildWorkingDirectory.getPath() + "/logs/pic-1"), "mypic"));
}
use of com.thoughtworks.go.remote.AgentIdentifier in project gocd by gocd.
the class BuildWorkArtifactUploadingTest method shouldUploadMatchedFolder.
@Test
public void shouldUploadMatchedFolder() throws Exception {
ArtifactPlans artifactPlans = new ArtifactPlans();
artifactPlans.add(new ArtifactPlan("**/*", "mypic"));
BuildAssignment buildAssigment = createAssignment(artifactPlans, new String[] { "logs/pic/fail.png", "logs/pic/pass.png", "README" });
BuildWork work = new BuildWork(buildAssigment);
GoArtifactsManipulatorStub manipulator = new GoArtifactsManipulatorStub();
AgentIdentifier agentIdentifier = new AgentIdentifier("somename", "127.0.0.1", AGENT_UUID);
work.doWork(agentIdentifier, new FakeBuildRepositoryRemote(), manipulator, environmentVariableContext, new AgentRuntimeInfo(agentIdentifier, AgentRuntimeStatus.Idle, currentWorkingDirectory(), "cookie", false), packageRepositoryExtension, scmExtension, taskExtension);
List<UploadEntry> entries = manipulator.uploadEntries();
assertThat(entries, not(uploadFileToDestination(new File(buildWorkingDirectory.getPath() + "/logs/pic/fail.png"), "mypic/logs/pic")));
assertThat(entries, not(uploadFileToDestination(new File(buildWorkingDirectory.getPath() + "/logs/pic/pass.png"), "mypic/logs/pic")));
assertThat(entries, uploadFileToDestination(new File(buildWorkingDirectory.getPath() + "/logs/pic"), "mypic/logs"));
assertThat(entries, uploadFileToDestination(new File(buildWorkingDirectory.getPath() + "/README"), "mypic"));
}
use of com.thoughtworks.go.remote.AgentIdentifier in project gocd by gocd.
the class BuildWorkEnvironmentVariablesTest method shouldOutputEnvironmentVariablesIntoConsoleOut.
@Test
public void shouldOutputEnvironmentVariablesIntoConsoleOut() throws Exception {
BuildAssignment buildAssigment = createAssignment();
BuildWork work = new BuildWork(buildAssigment);
GoArtifactsManipulatorStub manipulator = new GoArtifactsManipulatorStub();
new SystemEnvironment().setProperty("serviceUrl", "some_random_place");
AgentIdentifier agentIdentifier = new AgentIdentifier("somename", "127.0.0.1", AGENT_UUID);
work.doWork(agentIdentifier, new FakeBuildRepositoryRemote(), manipulator, environmentVariableContext, new AgentRuntimeInfo(agentIdentifier, AgentRuntimeStatus.Idle, currentWorkingDirectory(), "cookie", false), packageRepositoryExtension, scmExtension, taskExtension);
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_SERVER_URL", "some_random_place"));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_PIPELINE_NAME", PIPELINE_NAME));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_PIPELINE_COUNTER", 1));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_PIPELINE_LABEL", 1));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_STAGE_NAME", STAGE_NAME));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_STAGE_COUNTER", 1));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_JOB_NAME", JOB_NAME));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_REVISION", 3));
assertThat(manipulator.consoleOut(), printedEnvVariable("GO_TRIGGER_USER", TRIGGERED_BY_USER));
}
use of com.thoughtworks.go.remote.AgentIdentifier in project gocd by gocd.
the class WorkAssignments method getWork.
public Work getWork(AgentRuntimeInfo runtimeInfo) {
AgentIdentifier agent = runtimeInfo.getIdentifier();
synchronized (agentMutex(agent)) {
Work work = assignments.get(agent);
if (work == null) {
assignments.put(agent, NO_WORK);
idleAgentsTopic.post(new IdleAgentMessage(runtimeInfo));
return NO_WORK;
}
if (work instanceof NoWork) {
return work;
}
return assignments.remove(agent);
}
}
use of com.thoughtworks.go.remote.AgentIdentifier in project gocd by gocd.
the class WorkAssignments method onMessage.
public void onMessage(WorkAssignedMessage message) {
AgentIdentifier agentIdentifier = message.getAgent();
Work work = message.getWork();
if (work instanceof NoWork) {
synchronized (agentMutex(agentIdentifier)) {
assignments.remove(agentIdentifier);
}
} else {
synchronized (agentMutex(agentIdentifier)) {
assignments.replace(agentIdentifier, NO_WORK, work);
}
}
}
Aggregations