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 void addLatestGradleReleasePropertiesToModel(Map<String, Object> model, SBuildType buildType, ReleaseManagementConfigModel managementConfig) throws Exception { List<SFinishedBuild> finishedBuilds = buildType.getHistory(); for (SFinishedBuild finishedBuild : finishedBuilds) { SBuildType finishedBuildType = finishedBuild.getBuildType(); if (finishedBuildType != null) { for (SBuildRunnerDescriptor runnerDescriptor : finishedBuildType.getBuildRunners()) { Map<String, String> runnerParameters = runnerDescriptor.getParameters(); if (Boolean.valueOf(runnerParameters.get(RunnerParameterKeys.ENABLE_RELEASE_MANAGEMENT)) && addGradlePropertiesToModel(model, finishedBuild, managementConfig, runnerParameters)) { return; } } } } }
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() + "'"); } }