import flexagon.fd.model2.exceptions.FlexDeployConstraintViolationException;
import flexagon.fd.model.pojos.project.ProjectPackagePojo;
def functionName = "Commit Files and Build Package";
LOG.info("Running function: ${functionName}");
def fileType = PAYLOAD.properties["File Type"].findAll()[0];
def file = PAYLOAD.properties["File Name"].findAll();
def packageName = PAYLOAD.properties["Add to Package"].findAll()[0];
def committer = PAYLOAD.properties["User"].findAll()[0];
def commitMessage = PAYLOAD.properties["Message"].findAll()[0];
fileType = fileType.replace(' ' , '').replace(':' , '');
// create package in case it doesn't already exist
def application = "<Salesforce Application>"
LOG.info("Project Name: ${application}");
def projectId = FLEXDEPLOY.findProjectId(application);
tryCreatePackage(projectId, packageName, "New package from extension");
def projectPackage = FLEXDEPLOY.getPackage(projectId, packageName)
// commit and discover new file
def streamId = FLEXDEPLOY.findStreamId(projectId, "main")
LOG.info("Discovering Files..")
SALESFORCE.discoverFilesAndCommit(projectId, streamId, packageName, committer, commitMessage, fileType, file);
LOG.info("Discover Complete.")
// add file to package
LOG.info("Adding files - ${files}");
FLEXDEPLOY.addFilesToPackage(projectId, packageName, file)
// build package
def projectPackagePojo = new ProjectPackagePojo(projectId, packageName, null);
LOG.info("Building Package : ${projectPackage}");
FLEXDEPLOY.buildPackage(streamId,projectPackagePojo);
// create package
def tryCreatePackage(projectId, name, description) {
try {
LOG.info("Attempting to create package ${name}.");
def packageId = FLEXDEPLOY.createPackage(projectId, name, description, []);
LOG.info("Package doesn't exist. Created package ${name}. Id = ${packageId}");
}
catch(FlexDeployConstraintViolationException e)
{
// flexagon.fd.model2.exceptions.FlexDeployConstraintViolationException: FDML-99007: Package with same name already exists for the project.
if(e.getMessage().contains('Package with same name')){
LOG.warning("Package ${name} exists.. continuing.");
}
else throw e;
}
} |