-
-
Save Reizinixc/ee273ca11c6acbb11540161db41308be to your computer and use it in GitHub Desktop.
A GDSL for Jenkins pipelines.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
////////////////////////////////// | |
////// SCRIPT & CLASS SCOPE ////// | |
////////////////////////////////// | |
final def classContext = context scope: classScope() | |
final def scriptContext = context scope: scriptScope() | |
contributor([scriptContext, classContext]) { | |
property(name: "env", type: 'org.jenkinsci.plugins.workflow.cps.EnvActionImpl') | |
property(name: "params", type: 'org.jenkinsci.plugins.workflow.cps.EnvActionImpl') | |
method(name: 'echo', type: 'java.lang.Object', params: [message: 'java.lang.CharSequence']) | |
method(name: 'error', type: 'java.lang.Object', params: [message: 'java.lang.CharSequence']) | |
method(name: 'jobDsl', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'failOnMissingPlugin', type: 'java.lang.Boolean'), | |
parameter(name: 'failOnSeedCollision', type: 'java.lang.Boolean'), | |
parameter(name: 'ignoreExisting', type: 'java.lang.Boolean'), | |
parameter(name: 'ignoreMissingFiles', type: 'java.lang.Boolean'), | |
parameter(name: 'removedConfigFilesAction', type: 'java.lang.CharSequence'), | |
parameter(name: 'removedJobAction', type: 'java.lang.CharSequence'), | |
parameter(name: 'removedViewAction', type: 'java.lang.CharSequence'), | |
parameter(name: 'sandbox', type: 'java.lang.Boolean'), | |
parameter(name: 'scriptText', type: 'java.lang.CharSequence'), | |
parameter(name: 'targets', type: 'java.lang.CharSequence'), | |
parameter(name: 'unstableOnDeprecation', type: 'java.lang.Boolean'), | |
]) | |
method(name: 'libraryResource', type: 'java.lang.String', namedParams: [ | |
parameter(name: 'resource', type: 'java.lang.CharSequence'), | |
parameter(name: 'encoding', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'pipeline', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'readYaml', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'file', type: 'java.lang.CharSequence'), | |
parameter(name: 'text', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'readFile', type: 'java.lang.String', namedParams: [ | |
parameter(name: 'file', type: 'java.lang.CharSequence'), | |
parameter(name: 'encoding', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'fileExists', type: 'java.lang.Boolean', params: [file: 'java.lang.CharSequence']) | |
method(name: 'fileExists', type: 'java.lang.Boolean', namedParams: [ | |
parameter(name: 'file', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'writeFile', type: 'java.lang.String', namedParams: [ | |
parameter(name: 'file', type: 'java.lang.CharSequence'), | |
parameter(name: 'text', type: 'java.lang.CharSequence'), | |
parameter(name: 'encoding', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'sh', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'label', type: 'java.lang.CharSequence'), | |
parameter(name: 'returnStatus', type: 'java.lang.Boolean'), | |
parameter(name: 'returnStdout', type: 'java.lang.Boolean'), | |
parameter(name: 'script', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'sh', type: 'java.lang.Object', params: [script: 'java.lang.CharSequence']) | |
method(name: 'timeout', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'time', type: 'java.lang.Integer'), | |
parameter(name: 'unit', type: 'java.lang.CharSequence'), | |
], params: [body: 'groovy.lang.Closure']) | |
// Credentials Plugin | |
method(name: 'certificate', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'aliasVariable', type: 'java.lang.CharSequence'), | |
parameter(name: 'credentialsId', type: 'java.lang.CharSequence'), | |
parameter(name: 'keystoreVariable', type: 'java.lang.CharSequence'), | |
parameter(name: 'passwordVariable', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'dockerCert', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'credentialsId', type: 'java.lang.CharSequence'), | |
parameter(name: 'variable', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'file', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'credentialsId', type: 'java.lang.CharSequence'), | |
parameter(name: 'variable', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'sshUserPrivateKey', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'credentialsId', type: 'java.lang.CharSequence'), | |
parameter(name: 'keyFileVariable', type: 'java.lang.CharSequence'), | |
parameter(name: 'passphraseVariable', type: 'java.lang.CharSequence'), | |
parameter(name: 'usernameVariable', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'string', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'credentialsId', type: 'java.lang.CharSequence'), | |
parameter(name: 'variable', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'usernameColonPassword', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'credentialsId', type: 'java.lang.CharSequence'), | |
parameter(name: 'variable', type: 'java.lang.CharSequence') | |
]) | |
method(name: 'usernamePassword', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'credentialsId', type: 'java.lang.CharSequence'), | |
parameter(name: 'passwordVariable', type: 'java.lang.CharSequence'), | |
parameter(name: 'usernameVariable', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'withCredentials', type: 'java.lang.Object', params: [ | |
credentials: 'java.util.List<java.lang.Object>', | |
body : 'groovy.lang.Closure', | |
]) | |
// Additional unknown declaration via: [$class: 'ZipFileBinding', credentialsId: '', variable: ''] | |
// SSH Agent Plugin | |
method(name: 'sshagent', type: 'java.lang.Object', params: [ | |
credentials: 'java.util.List<java.lang.CharSequence>', | |
body : 'groovy.lang.Closure' | |
]) | |
method(name: 'sshagent', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'credentials', type: 'java.util.List<java.lang.CharSequence>'), | |
parameter(name: 'ignoreMissing', type: 'java.lang.Boolean'), | |
], params: [body: 'groovy.lang.Closure']) | |
// JUnit Plugin | |
method(name: 'junit', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'testResults', type: 'java.lang.CharSequence'), | |
parameter(name: 'allowEmptyResults', type: 'java.lang.Boolean'), | |
parameter(name: 'healthScaleFactor', type: 'java.lang.Double'), | |
parameter(name: 'keepLongStdio', type: 'java.lang.Boolean'), | |
]) | |
// Sonarqube Plugin | |
method(name: 'waitForQualityGate', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'abortPipeline', type: 'java.lang.Boolean') | |
]) | |
method(name: 'withSonarQubeEnv', type: 'java.lang.Object', params: [ | |
sonarqubeServerName: 'java.lang.CharSequence', | |
body : 'groovy.lang.Closure', | |
]) | |
// Dependency Check Plugin | |
method(name: 'dependencyCheckPublisher', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'failedNewCritical', type: 'java.lang.Integer'), | |
parameter(name: 'failedNewHigh', type: 'java.lang.Integer'), | |
parameter(name: 'failedNewLow', type: 'java.lang.Integer'), | |
parameter(name: 'failedNewMedium', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalCritical', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalHigh', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalLow', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalMedium', type: 'java.lang.Integer'), | |
parameter(name: 'newThresholdAnalysisExploitable', type: 'java.lang.Boolean'), | |
parameter(name: 'pattern', type: 'java.lang.CharSequence'), | |
parameter(name: 'totalThresholdAnalysisExploitable', type: 'java.lang.Boolean'), | |
parameter(name: 'unstableNewCritical', type: 'java.lang.Integer'), | |
parameter(name: 'unstableNewHigh', type: 'java.lang.Integer'), | |
parameter(name: 'unstableNewLow', type: 'java.lang.Integer'), | |
parameter(name: 'unstableNewMedium', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalCritical', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalHigh', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalLow', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalMedium', type: 'java.lang.Integer'), | |
]) | |
// Dependency Track Plugin | |
method(name: 'dependencyTrackPublisher', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'artifact', type: 'java.lang.CharSequence'), | |
parameter(name: 'artifactType', type: 'java.lang.CharSequence'), | |
parameter(name: 'failedNewCritical', type: 'java.lang.Integer'), | |
parameter(name: 'failedNewHigh', type: 'java.lang.Integer'), | |
parameter(name: 'failedNewLow', type: 'java.lang.Integer'), | |
parameter(name: 'failedNewMedium', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalCritical', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalHigh', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalLow', type: 'java.lang.Integer'), | |
parameter(name: 'failedTotalMedium', type: 'java.lang.Integer'), | |
parameter(name: 'newThresholdAnalysisExploitable', type: 'java.lang.Boolean'), | |
parameter(name: 'projectId', type: 'java.lang.CharSequence'), | |
parameter(name: 'projectName', type: 'java.lang.CharSequence'), | |
parameter(name: 'projectVersion', type: 'java.lang.CharSequence'), | |
parameter(name: 'synchronous', type: 'java.lang.Boolean'), | |
parameter(name: 'totalThresholdAnalysisExploitable', type: 'java.lang.Boolean'), | |
parameter(name: 'unstableNewCritical', type: 'java.lang.Integer'), | |
parameter(name: 'unstableNewHigh', type: 'java.lang.Integer'), | |
parameter(name: 'unstableNewLow', type: 'java.lang.Integer'), | |
parameter(name: 'unstableNewMedium', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalCritical', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalHigh', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalLow', type: 'java.lang.Integer'), | |
parameter(name: 'unstableTotalMedium', type: 'java.lang.Integer'), | |
]) | |
// GitLab Plugin | |
method(name: 'updateGitlabCommitStatus', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'name', type: 'java.lang.CharSequence'), | |
parameter(name: 'state', type: 'java.lang.CharSequence'), | |
]) | |
// Email Extension Plugin | |
method(name: 'emailext', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'attachLog', type: 'java.lang.Boolean'), | |
parameter(name: 'attachmentsPattern', type: 'java.lang.CharSequence'), | |
parameter(name: 'body', type: 'java.lang.CharSequence'), | |
parameter(name: 'from', type: 'java.lang.CharSequence'), | |
parameter(name: 'mimeType', type: 'java.lang.CharSequence'), | |
parameter(name: 'postsendScript', type: 'java.lang.CharSequence'), | |
parameter(name: 'presendScript', type: 'java.lang.CharSequence'), | |
parameter(name: 'recipientProviders', type: 'java.util.List<Object>'), | |
parameter(name: 'replyTo', type: 'java.lang.CharSequence'), | |
parameter(name: 'saveOutput', type: 'java.lang.Boolean'), | |
parameter(name: 'subject', type: 'java.lang.CharSequence'), | |
parameter(name: 'to', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'culprits', type: 'java.lang.Object') | |
method(name: 'developers', type: 'java.lang.Object') | |
method(name: 'brokenTestsSuspects', type: 'java.lang.Object') | |
method(name: 'brokenBuildSuspects', type: 'java.lang.Object') | |
method(name: 'recipients', type: 'java.lang.Object') | |
method(name: 'requestor', type: 'java.lang.Object') | |
method(name: 'upstreamDevelopers', type: 'java.lang.Object') | |
// HTML Publisher | |
method(name: 'publishHTML', type: 'java.lang.Object', params: [target: 'java.util.Map<String, Object>']) | |
} | |
/////////////////////////// | |
////// CLOSURE SCOPE ////// | |
/////////////////////////// | |
final def closureContext = context(scope: closureScope()) | |
contributor(closureContext) { | |
final def pipelineClosure = enclosingCall('pipeline') as Object | |
if (pipelineClosure) { | |
method(name: 'agent', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'environment', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'options', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'parameters', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'post', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'stages', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'tools', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'triggers', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
} | |
final def agentClosure = enclosingCall('agent') as Object | |
if (agentClosure) { | |
method(name: 'label', type: 'java.lang.Object', params: [nodeLabel: 'java.lang.CharSequence']) | |
} | |
final def triggersClosure = enclosingCall('triggers') as Object | |
if (triggersClosure) { | |
method(name: 'cron', type: 'java.lang.Object', params: [cron: 'java.lang.CharSequence']) | |
method(name: 'gitlab', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'acceptMergeRequestOnSuccess', type: 'java.lang.Boolean'), | |
parameter(name: 'addCiMessage', type: 'java.lang.Boolean'), | |
parameter(name: 'addNoteOnMergeRequest', type: 'java.lang.Boolean'), | |
parameter(name: 'addVoteOnMergeRequest', type: 'java.lang.Boolean'), | |
parameter(name: 'branchFilterType', type: 'java.lang.CharSequence'), | |
parameter(name: 'cancelPendingBuildsOnUpdate', type: 'java.lang.Boolean'), | |
parameter(name: 'ciSkip', type: 'java.lang.Boolean'), | |
parameter(name: 'excludeBranchesSpec', type: 'java.lang.CharSequence'), | |
parameter(name: 'includeBranchesSpec', type: 'java.lang.CharSequence'), | |
parameter(name: 'noteRegex', type: 'java.lang.CharSequence'), | |
parameter(name: 'pendingBuildName', type: 'java.lang.CharSequence'), | |
parameter(name: 'secretToken', type: 'java.lang.CharSequence'), | |
parameter(name: 'setBuildDescription', type: 'java.lang.Boolean'), | |
parameter(name: 'skipWorkInProgressMergeRequest', type: 'java.lang.Boolean'), | |
parameter(name: 'triggerOnMergeRequest', type: 'java.lang.Boolean'), | |
parameter(name: 'triggerOnNoteRequest', type: 'java.lang.Boolean'), | |
parameter(name: 'triggerOnPush', type: 'java.lang.Boolean'), | |
parameter(name: 'triggerOpenMergeRequestOnPush', type: 'java.lang.CharSequence'), | |
]) | |
} | |
final def optionsClosure = enclosingCall('options') as Object | |
if (optionsClosure) { | |
method(name: 'buildDiscarder', type: 'java.lang.Object', params: [logRotator: 'java.lang.Object']) | |
method(name: 'checkoutToSubdirectory', type: 'java.lang.Object', params: [subDirectory: 'java.lang.CharSequence']) | |
method(name: 'disableConcurrentBuilds', type: 'java.lang.Object') | |
method(name: 'disableResume', type: 'java.lang.Object') | |
method(name: 'gitLabConnection', type: 'java.lang.Object', params: [gitlabConnectionName: 'java.lang.CharSequence']) | |
method(name: 'gitlabBuilds', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'builds', type: 'java.util.List<java.lang.CharSequence>'), | |
]) | |
method(name: 'logRotator', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'artifactDaysToKeepStr', type: 'java.lang.CharSequence'), | |
parameter(name: 'artifactNumToKeepStr', type: 'java.lang.CharSequence'), | |
parameter(name: 'daysToKeepStr', type: 'java.lang.CharSequence'), | |
parameter(name: 'numToKeepStr', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'newContainerPerStage', type: 'java.lang.Object') | |
method(name: 'overrideIndexTriggers', type: 'java.lang.Object', params: [isOverride: 'java.lang.Boolean']) | |
method(name: 'quietPeriod', type: 'java.lang.Object', params: [seconds: 'java.lang.Integer']) | |
method(name: 'retry', type: 'java.lang.Object', params: [number: 'java.lang.Integer']) | |
method(name: 'skipDefaultCheckout', type: 'java.lang.Object') | |
method(name: 'skipStagesAfterUnstable', type: 'java.lang.Object') | |
method(name: 'timeout', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'time', type: 'java.lang.Integer'), | |
parameter(name: 'unit', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'timestamps', type: 'java.lang.Object') | |
} | |
final def toolsClosure = enclosingCall('tools') as Object | |
if (toolsClosure) { | |
method(name: 'git', type: 'java.lang.Object', params: [toolId: 'java.lang.CharSequence']) | |
method(name: 'gradle', type: 'java.lang.Object', params: [toolId: 'java.lang.CharSequence']) | |
method(name: 'jdk', type: 'java.lang.Object', params: [toolId: 'java.lang.CharSequence']) | |
method(name: 'maven', type: 'java.lang.Object', params: [toolId: 'java.lang.CharSequence']) | |
} | |
final def environmentClosure = enclosingCall('environment') as Object | |
if (environmentClosure) { | |
method(name: 'credentials', type: 'java.lang.Object', params: [credentialsId: 'java.lang.CharSequence']) | |
} | |
final def parametersClosure = enclosingCall('parameters') as Object | |
if (parametersClosure) { | |
method(name: 'booleanParam', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'name', type: 'java.lang.CharSequence'), | |
parameter(name: 'description', type: 'java.lang.CharSequence'), | |
parameter(name: 'defaultValue', type: 'java.lang.Boolean'), | |
]) | |
method(name: 'choice', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'name', type: 'java.lang.CharSequence'), | |
parameter(name: 'description', type: 'java.lang.CharSequence'), | |
parameter(name: 'choices', type: 'java.util.List'), | |
]) | |
method(name: 'password', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'name', type: 'java.lang.CharSequence'), | |
parameter(name: 'description', type: 'java.lang.CharSequence'), | |
parameter(name: 'defaultValue', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'string', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'name', type: 'java.lang.CharSequence'), | |
parameter(name: 'description', type: 'java.lang.CharSequence'), | |
parameter(name: 'defaultValue', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'text', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'name', type: 'java.lang.CharSequence'), | |
parameter(name: 'description', type: 'java.lang.CharSequence'), | |
parameter(name: 'defaultValue', type: 'java.lang.CharSequence'), | |
]) | |
} | |
final def stagesClosure = enclosingCall('stages') as Object | |
if (stagesClosure) { | |
method(name: 'agent', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'input', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'parallel', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'post', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'stage', type: 'java.lang.Object', params: [ | |
name: 'java.lang.CharSequence', | |
body: 'groovy.lang.Closure', | |
]) | |
} | |
final def stageClosure = enclosingCall('stage') as Object | |
if (stageClosure) { | |
method(name: 'environment', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'steps', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'when', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
} | |
final def whenClosure = enclosingCall('when') as Object | |
if (whenClosure) { | |
method(name: 'allOf', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'anyOf', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'branch', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'comparator', type: 'java.lang.CharSequence'), | |
parameter(name: 'pattern', type: 'java.lang.CharSequence'), | |
]) | |
// comparator can be: EQUALS, GLOB or REGEXP | |
method(name: 'branch', type: 'java.lang.Object', params: [branchName: 'java.lang.CharSequence']) | |
method(name: 'buildingTag', type: 'java.lang.Object') | |
method(name: 'changelog', type: 'java.lang.Object', params: [regExp: 'java.lang.CharSequence']) | |
method(name: 'changeRequest', type: 'java.lang.Object') | |
method(name: 'changeset', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'caseSensitive', type: 'java.lang.Boolean'), | |
parameter(name: 'comparator', type: 'java.lang.CharSequence'), | |
parameter(name: 'pattern', type: 'java.lang.CharSequence'), | |
]) | |
// comparator can be: EQUALS, GLOB or REGEXP | |
method(name: 'changeset', type: 'java.lang.Object', params: [fileGlob: 'java.lang.CharSequence']) | |
method(name: 'environment', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'name', type: 'java.lang.CharSequence'), | |
parameter(name: 'value', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'equals', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'actual', type: 'java.lang.CharSequence'), | |
parameter(name: 'expected', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'expression', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'not', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'tag', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'comparator', type: 'java.lang.CharSequence'), | |
parameter(name: 'pattern', type: 'java.lang.CharSequence'), | |
]) | |
// comparator can be: EQUALS, GLOB or REGEXP | |
method(name: 'tag', type: 'java.lang.Object', params: [branchName: 'java.lang.CharSequence']) | |
method(name: 'triggeredBy', type: 'java.lang.Object', namedParams: [ | |
parameter(name: 'cause', type: 'java.lang.CharSequence'), | |
parameter(name: 'detail', type: 'java.lang.CharSequence'), | |
]) | |
method(name: 'triggeredBy', type: 'java.lang.Object', params: [branchName: 'java.lang.CharSequence']) | |
} | |
final def stepsClosure = enclosingCall('steps') as Object | |
final def abortedClosure = enclosingCall('aborted') as Object | |
final def alwaysClosure = enclosingCall('always') as Object | |
final def changedClosure = enclosingCall('changed') as Object | |
final def cleanupClosure = enclosingCall('cleanup') as Object | |
final def failureClosure = enclosingCall('failure') as Object | |
final def fixedClosure = enclosingCall('fixed') as Object | |
final def regressionClosure = enclosingCall('regression') as Object | |
final def successClosure = enclosingCall('success') as Object | |
final def unstableClosure = enclosingCall('unstable') as Object | |
final def unsuccessfulClosure = enclosingCall('unsuccessful') as Object | |
if (stepsClosure | |
|| abortedClosure | |
|| alwaysClosure | |
|| changedClosure | |
|| cleanupClosure | |
|| failureClosure | |
|| fixedClosure | |
|| regressionClosure | |
|| successClosure | |
|| unstableClosure | |
|| unsuccessfulClosure | |
) { | |
method(name: 'script', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
} | |
final def postClosure = enclosingCall('post') as Object | |
if (postClosure) { | |
method(name: 'aborted', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'always', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'changed', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'cleanup', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'failure', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'fixed', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'regression', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'success', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'unstable', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
method(name: 'unsuccessful', type: 'java.lang.Object', params: [body: 'groovy.lang.Closure']) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment