private Build locateLatestBuildInfo(SBuildType buildType) throws Exception { List<SFinishedBuild> finishedBuilds = buildType.getHistory(); for (SFinishedBuild finishedBuild : finishedBuilds) { SBuildType finishedBuildType = finishedBuild.getBuildType(); if (finishedBuildType != null) { File artifactsDirectory = new File(finishedBuildType.getArtifactsDirectory(), finishedBuild.getBuildId() + ""); File buildInfo = new File(artifactsDirectory, ".teamcity/" + BUILD_INFO_FILE_NAME_PACKED); if (buildInfo.exists()) { String buildInfoString = CharStreams.toString( new InputStreamReader(new GZIPInputStream(new FileInputStream(buildInfo)))); return BuildInfoExtractorUtils.jsonStringToBuildInfo(buildInfoString); } } } return null; } }
private boolean addGradlePropertiesToModel(Map<String, Object> model, SFinishedBuild finishedBuild, ReleaseManagementConfigModel managementConfig, Map<String, String> runnerParameters) throws IOException { List<String> releasePropertyKeys = getPropertyKeys(RunnerParameterKeys.RELEASE_PROPERTIES, runnerParameters); List<String> nextIntegrationPropertyKeys = getPropertyKeys(RunnerParameterKeys.NEXT_INTEGRATION_PROPERTIES, runnerParameters); File artifactsDirectory = new File(finishedBuild.getBuildType().getArtifactsDirectory(), finishedBuild.getBuildId() + ""); File gradlePropertiesFile = new File(artifactsDirectory, ".teamcity/" + ConstantValues.GRADLE_PROPERTIES_FILE_NAME_PACKED); if (gradlePropertiesFile.exists()) { Properties gradleProperties = new Properties(); InputStream stream = null; try { stream = new GZIPInputStream(new FileInputStream(gradlePropertiesFile)); gradleProperties.load(stream); } finally { IOUtils.closeQuietly(stream); } addPropertiesToModel(model, managementConfig, releasePropertyKeys, gradleProperties, true); addPropertiesToModel(model, managementConfig, nextIntegrationPropertyKeys, gradleProperties, false); return true; } else { throw new FileNotFoundException("Unable to find gradle properties file at '" + gradlePropertiesFile.getAbsolutePath() + "' for build '" + finishedBuild.getBuildNumber() + "'"); } }
public static ProjectHistoryItemBean build(Date now, SFinishedBuild build){ ProjectHistoryItemBean bean = new ProjectHistoryItemBean(); bean.buildId = build.getBuildId(); bean.title = build.getBuildTypeName(); bean.buildNumber = build.getBuildNumber(); bean.buildDate = toDuration(now.getTime() - build.getFinishDate().getTime()); return bean; } }
buildCleanupContext.getErrorReporter().buildCleanupError(build.getBuildId(), "Failed to remove [" + errorNum + "] s3 " + StringUtil.pluralize("object", errorNum.get()) + suffix); buildCleanupContext.getErrorReporter().buildCleanupError(build.getBuildId(), "Failed to remove s3 artifacts: " + e.getMessage());
@Test public void testGetPreviousNonPreviousNonPersonalBuild_WhenPersonalPreviousReturnsNull() { WebHookContentBuilder builder = new WebHookContentBuilder(null, null, resolverManager); WebHook wh = factory.getWebHook(); SBuild runningBuild = mock(SBuild.class); SFinishedBuild personalPreviousBuild = mock(SFinishedBuild.class); when(runningBuild.getPreviousFinished()).thenReturn(personalPreviousBuild); when(runningBuild.getBuildId()).thenReturn(100L); when(personalPreviousBuild.isPersonal()).thenReturn(true); when(personalPreviousBuild.getBuildId()).thenReturn(99L); when(personalPreviousBuild.getPreviousFinished()).thenReturn(null); SBuild previousBuild = builder.getPreviousNonPersonalBuild(wh, runningBuild); assertNull(previousBuild); assertNull(wh.getPreviousNonPersonalBuild()); }
@Test public void testGetPreviousNonPreviousNonPersonalBuild_WhenPreviousIsPersonal() { WebHookContentBuilder builder = new WebHookContentBuilder(null, null, resolverManager); WebHook wh = factory.getWebHook(); SBuild runningBuild = mock(SBuild.class); SFinishedBuild personalPreviousBuild = mock(SFinishedBuild.class); SFinishedBuild nonPersonalPreviousBuild = mock(SFinishedBuild.class); when(runningBuild.getPreviousFinished()).thenReturn(personalPreviousBuild); when(runningBuild.getBuildId()).thenReturn(100L); when(personalPreviousBuild.isPersonal()).thenReturn(true); when(personalPreviousBuild.getBuildId()).thenReturn(99L); when(personalPreviousBuild.getPreviousFinished()).thenReturn(nonPersonalPreviousBuild); when(nonPersonalPreviousBuild.getBuildId()).thenReturn(98L); SBuild previousBuild = builder.getPreviousNonPersonalBuild(wh, runningBuild); assertEquals(nonPersonalPreviousBuild, previousBuild); assertEquals(nonPersonalPreviousBuild, wh.getPreviousNonPersonalBuild()); assertEquals(98L, previousBuild.getBuildId()); }
@Test public void testGetPreviousNonPreviousNonPersonalBuild_WhenPreviousIsNonPersonal() { WebHookContentBuilder builder = new WebHookContentBuilder(null, null, resolverManager); WebHook wh = factory.getWebHook(); SBuild runningBuild = mock(SBuild.class); SFinishedBuild nonPersonalPreviousBuild = mock(SFinishedBuild.class); when(runningBuild.getPreviousFinished()).thenReturn(nonPersonalPreviousBuild); when(runningBuild.getBuildId()).thenReturn(100L); when(nonPersonalPreviousBuild.getBuildId()).thenReturn(98L); SBuild previousBuild = builder.getPreviousNonPersonalBuild(wh, runningBuild); assertEquals(nonPersonalPreviousBuild, previousBuild); assertEquals(nonPersonalPreviousBuild, wh.getPreviousNonPersonalBuild()); assertEquals(98L, previousBuild.getBuildId()); }