in aws-codedeploy-common/src/main/java/jetbrains/buildServer/runner/codedeploy/AWSClient.java [195:232]
private String createDeployment(@NotNull RevisionLocation revisionLocation,
@NotNull String applicationName,
@NotNull String deploymentGroupName,
@NotNull Map<String, String> ec2Tags,
@NotNull Collection<String> autoScalingGroups,
@Nullable String deploymentConfigName,
boolean rollbackOnFailure,
boolean rollbackOnAlarmThreshold,
@Nullable String fileExistsBehavior) {
myListener.createDeploymentStarted(applicationName, deploymentGroupName, deploymentConfigName);
final CreateDeploymentRequest request =
new CreateDeploymentRequest()
.withRevision(revisionLocation)
.withApplicationName(applicationName)
.withDeploymentGroupName(deploymentGroupName)
.withFileExistsBehavior(fileExistsBehavior)
.withDescription(getDescription("Deployment created by ", 100));
if (StringUtil.isNotEmpty(deploymentConfigName)) request.setDeploymentConfigName(deploymentConfigName);
if (!ec2Tags.isEmpty() || !autoScalingGroups.isEmpty()) {
request.withTargetInstances(new TargetInstances().withTagFilters(getTagFilters(ec2Tags)).withAutoScalingGroups(autoScalingGroups));
}
if (rollbackOnFailure || rollbackOnAlarmThreshold) {
final AutoRollbackConfiguration rollbackConfiguration = new AutoRollbackConfiguration().withEnabled(true);
if (rollbackOnFailure) {
rollbackConfiguration.withEvents(AutoRollbackEvent.DEPLOYMENT_FAILURE);
}
if (rollbackOnAlarmThreshold) {
rollbackConfiguration.withEvents(AutoRollbackEvent.DEPLOYMENT_STOP_ON_ALARM);
}
request.setAutoRollbackConfiguration(rollbackConfiguration);
}
final String deploymentId = myCodeDeployClient.createDeployment(request).getDeploymentId();
myListener.createDeploymentFinished(applicationName, deploymentGroupName, deploymentConfigName, deploymentId);
return deploymentId;
}