private SBuildFeatureDescriptor getFeature(SRunningBuild build) { SBuildType buildType = build.getBuildType(); if (buildType == null) { return null; } for (SBuildFeatureDescriptor feature : buildType.getResolvedSettings().getBuildFeatures()) { if (BuildCommitFeature.NAME.equals(feature.getType())) { return feature; } } return null; } }
SBuildType buildType = build.getBuildType(); if (buildType != null && shouldStoreBuildInRunHistory(runParameters)) { String customStorageId = build.getBuildTypeExternalId() + "#" +
private BuildTriggerDescriptor getTrigger(SRunningBuild build) { SBuildType buildType = build.getBuildType(); if (buildType == null) { return null; } for (BuildTriggerDescriptor trigger : buildType.getResolvedSettings().getBuildTriggersCollection()) { if (trigger.getType().equals(PullRequestsFeature.NAME)) { return trigger; } } return null; } }
private void onBuildFinished(final SRunningBuild build) { SBuildType buildType = build.getBuildType(); if (buildType == null) { return; } for (final BuildTriggerDescriptor trigger : buildType.getResolvedSettings().getBuildTriggersCollection()) { if (!trigger.getType().equals(TomcatStagingFeature.NAME)) { continue; } Branch branch = build.getBranch(); if (branch != null) { handleDeploy(build, trigger); } else { LOGGER.severe("Unknown branch name"); } } }
@Override public void buildFinished(SRunningBuild build) { super.buildFinished(build); SBuildType type = build.getBuildType(); if (type != null) { CustomDataStorage checkConfigChanges = type.getCustomDataStorage(CustomDataStorageKeys.CHECKOUT_CONFIGURATION_CHANGE_HISTORY); String oldCheckoutConfigurationName = checkConfigChanges.getValue(type.getBuildTypeId()); if (StringUtils.isNotBlank(oldCheckoutConfigurationName)) { type.setCheckoutType(BuildTypeDescriptor.CheckoutType.valueOf(oldCheckoutConfigurationName)); checkConfigChanges.putValue(type.getBuildTypeId(), null); } } }
private void processBuildEvent(SRunningBuild sRunningBuild, BuildStateEnum state) { Loggers.SERVER.debug("About to process Slack notifications for " + sRunningBuild.getProjectId() + " at buildState " + state.getShortName()); for (SlackNotificationConfigWrapper slackNotificationConfigWrapper : getListOfEnabledSlackNotifications(sRunningBuild.getProjectId())){ if (state.equals(BuildStateEnum.BUILD_STARTED)){ slackNotificationConfigWrapper.slackNotification.setPayload(myManager.buildStarted(sRunningBuild, getPreviousNonPersonalBuild(sRunningBuild))); slackNotificationConfigWrapper.slackNotification.setEnabled(slackNotificationConfigWrapper.whc.isEnabledForBuildType(sRunningBuild.getBuildType()) && slackNotificationConfigWrapper.slackNotification.getBuildStates().enabled(BuildStateEnum.BUILD_STARTED)); } else if (state.equals(BuildStateEnum.BUILD_INTERRUPTED)){ slackNotificationConfigWrapper.slackNotification.setPayload(myManager.buildInterrupted(sRunningBuild, getPreviousNonPersonalBuild(sRunningBuild))); slackNotificationConfigWrapper.slackNotification.setEnabled(slackNotificationConfigWrapper.whc.isEnabledForBuildType(sRunningBuild.getBuildType()) && slackNotificationConfigWrapper.slackNotification.getBuildStates().enabled(BuildStateEnum.BUILD_INTERRUPTED)); } else if (state.equals(BuildStateEnum.BEFORE_BUILD_FINISHED)){ slackNotificationConfigWrapper.slackNotification.setPayload(myManager.beforeBuildFinish(sRunningBuild, getPreviousNonPersonalBuild(sRunningBuild))); slackNotificationConfigWrapper.slackNotification.setEnabled(slackNotificationConfigWrapper.whc.isEnabledForBuildType(sRunningBuild.getBuildType()) && slackNotificationConfigWrapper.slackNotification.getBuildStates().enabled(BuildStateEnum.BEFORE_BUILD_FINISHED)); } else if (state.equals(BuildStateEnum.BUILD_FINISHED)){ slackNotificationConfigWrapper.slackNotification.setEnabled(slackNotificationConfigWrapper.whc.isEnabledForBuildType(sRunningBuild.getBuildType()) && slackNotificationConfigWrapper.slackNotification.getBuildStates().enabled( BuildStateEnum.BUILD_FINISHED, sRunningBuild.getStatusDescriptor().isSuccessful(), this.hasBuildChangedHistoricalState(sRunningBuild))); slackNotificationConfigWrapper.slackNotification.setPayload(myManager.buildFinished(sRunningBuild, getPreviousNonPersonalBuild(sRunningBuild)));; } doPost(slackNotificationConfigWrapper.slackNotification); //Loggers.ACTIVITIES.debug("SlackNotificationListener :: " + myManager.getFormat(slackNotificationConfigWrapper.whc.getPayloadFormat()).getFormatDescription()); } }
BuildStateEnum buildState) { setBuildResult(sRunningBuild, previousBuild, buildState); setBuildFullName(sRunningBuild.getBuildType().getFullName()); setBuildName(sRunningBuild.getBuildType().getName()); if (sRunningBuild.getTriggeredBy().getUser() != null) { setTriggeredBySlackUserId(sRunningBuild.getTriggeredBy().getUser().getPropertyValue(SlackNotificator.USERID_KEY)); setBuildTypeId(TeamCityIdResolver.getBuildTypeId(sRunningBuild.getBuildType())); setAgentName(sRunningBuild.getAgentName()); setElapsedTime(sRunningBuild.getElapsedTime()); setBuildDescriptionWithLinkSyntax(String.format("<" + getBuildStatusUrl() + "|" + getBuildResult() + " - " + sRunningBuild.getBuildType().getFullName() + " #" + sRunningBuild.getBuildNumber() + branchSuffix + ">"));
public void handle(SRunningBuild build, BuildTriggerDescriptor trigger) throws IOException { Branch branch = build.getBranch(); if (branch != null && build.getBuildStatus().isSuccessful()) { SBuildType buildType = build.getBuildType(); VcsPropertiesHelper vcsPropertiesHelper = new VcsPropertiesHelper(trigger.getProperties(), vcsConstants); VcsApi vcsApi = vcsApiFactories.create(vcsPropertiesHelper); PullRequest pullRequest = vcsApi.getPullRequestForBranch(branch.getName()); JsonCustomDataStorage<TomcatStagingDeploy> dataStorage = getJsonDataStorage(buildType, trigger); StagingPropertiesHelper stagingPropertiesHelper = new StagingPropertiesHelper(trigger.getProperties(), constants); TomcatStagingDeploy stagingDeploy = getTomcatStagingDeploy(vcsPropertiesHelper, pullRequest, dataStorage); deploy(build, stagingPropertiesHelper, stagingDeploy); postComment(vcsApi, pullRequest, stagingDeploy); dataStorage.putValue(getPullRequestKey(vcsPropertiesHelper, pullRequest), stagingDeploy); } }
public void handle(SRunningBuild build, BuildTriggerDescriptor trigger, BuildStatus buildStatus) throws IOException { LOGGER.log(Level.INFO, "Handling build status - Build Status: {0}, Branch: {1}, isSuccessful: {2}", new Object[]{buildStatus, build.getBranch().getName(), build.getBuildStatus().isSuccessful()}); Branch branch = build.getBranch(); if (branch != null) { SBuildType buildType = build.getBuildType(); PullRequestPropertiesHelper pullRequestPropertiesHelper = new PullRequestPropertiesHelper(trigger.getProperties(), vcsConstants, constants); VcsApi vcsApi = vcsApiFactories.create(pullRequestPropertiesHelper); PullRequest pullRequest = vcsApi.getPullRequestForBranch(branch.getName()); JsonCustomDataStorage<PullRequestBuild> dataStorage = getJsonDataStorage(buildType, trigger); PullRequestBuild pullRequestBuild = getPullRequestBuild(pullRequestPropertiesHelper, pullRequest, dataStorage); CommitStatus commitStatus = getCommitStatus(build.getBuildStatus(), buildStatus); Comment comment = updateStatus(build, vcsApi, pullRequest, pullRequestBuild, commitStatus); if (pullRequestPropertiesHelper.getApproveOnSuccessKey()) { updateApproval(vcsApi, pullRequest, commitStatus); } pullRequestBuild = new PullRequestBuild(pullRequest, build.getBuildStatus(), comment); dataStorage.putValue(getPullRequestKey(pullRequestPropertiesHelper, pullRequest), pullRequestBuild); } }