Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

A groovy script can be used in custom gates and steps, as well as for many configuration values on specific steps or gates. Additionally, a gate or step can be skipped by providing a Precondition groovy script. This page includes some sample scripts for these scenarios. See Pipeline Groovy Variables and Methods for a full listing of the accessible variables and methods in these groovy scripts.

Table of Contents

Custom Gates and Steps

Override Deploy Instance on All Projects with Plugin Suffix in Name

...

Code Block
languagegroovy
themeRDark
titleOverride deploy instance on all projects with Plugin suffix in name
snapshotProjects=stgexec.getSnapshotProjects();
for(snapshotProject in snapshotProjects)
{
    if(snapshotProject.getProjectName().endsWith("Plugin"))
    {
        stgexecinfo.setInstanceOverride(snapshotProject.getProjectId(), "WEBLOGIC")
    }
}

...

Override Deploy Instance Based on Project Type

...

Code Block
languagegroovy
themeRDark
def projects = stgexec.getSnapshotProjects();

for (def project in projects)
{
	if (project.getProjectType() != null)
	{
    	if ('EBS'.equals(project.getProjectType()))
    	{
        	stgexecinfo.setInstanceOverride(project.getProjectId(), project.getPackageName(), 'EBS');
    	}
	}
}

Validate Snapshot Contents

A pipeline can prevent deployments of any unexpected projects in the snapshot with a script similar to the following. This would best be implemented as a custom gate in the first stage of the pipeline.

Code Block
languagegroovy
themeRDark
expectedProjects = "HRWLSConfigurations,HRMDSObjects,HRSOAService,HRJavaApp,ValidatePaymentSB".split(",");

for (p in stgexec.getSnapshotProjects())
{
  if (!expectedProjects.contains(p.getProjectName()))
  {
    return "FAILED";
  }
}

return "SUCCESSFUL";

Precondition Scripts

Execute Step Only for Specific Object Type

This could be used to conditionally call a Restart OACore or Generate Jar utility workflow only if OAF_JAVA files are deployed.

Code Block
languagegroovy
themeRDark
def deployedTypes = stgexec.getProjectWorkflowOutputValues("DeployedTypes");

for (String listItem : deployedTypes)
{   
  if (listItem.contains('OAF_JAVA'))
  {
    return true;
  }
}

return false;