convert to extendedStage.required functionality for basic use cases

refs DE-617

extendedStage() has functionality that allows a stage to be required or not. If it is required, the stage is run. If it is not required, it is not run unless explicitly allowed via the allow-stages directive.

Test Plan
1. All pre-merge stages run correctly
1. All post-merge stages run correctly

[canvas-builds-refspec=ee0987058d3d29d8130904b126615a1ab20f9ca2]

Change-Id: Ie9709b50a2a6f75e5687972c49bfe488ee3b6be1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/262540
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
This commit is contained in:
Aaron Ogata 2021-04-08 14:49:10 -07:00
parent 694d5d6efe
commit ab4a9233e5
1 changed files with 21 additions and 25 deletions

46
Jenkinsfile vendored
View File

@ -358,21 +358,19 @@ pipeline {
.timeout(2)
.execute({ setupStage() })
if(!configuration.isChangeMerged() && env.GERRIT_PROJECT == 'canvas-lms') {
extendedStage('Rebase')
.obeysAllowStages(false)
.handler(buildSummaryReport)
.timeout(2)
.execute({ rebaseStage() })
}
extendedStage('Rebase')
.obeysAllowStages(false)
.handler(buildSummaryReport)
.required(!configuration.isChangeMerged() && env.GERRIT_PROJECT == 'canvas-lms')
.timeout(2)
.execute({ rebaseStage() })
if (configuration.isChangeMerged()) {
extendedStage('Build Docker Image (Pre-Merge)')
.obeysAllowStages(false)
.handler(buildSummaryReport)
.timeout(20)
.execute(buildDockerImageStage.&premergeCacheImage)
}
extendedStage('Build Docker Image (Pre-Merge)')
.obeysAllowStages(false)
.handler(buildSummaryReport)
.required(configuration.isChangeMerged())
.timeout(20)
.execute(buildDockerImageStage.&premergeCacheImage)
extendedStage('Build Docker Image')
.obeysAllowStages(false)
@ -394,12 +392,11 @@ pipeline {
]) {
def stages = [:]
if (!configuration.isChangeMerged()) {
echo 'adding Linters'
extendedStage('Linters')
.handler(buildSummaryReport)
.queue(stages, { lintersStage() })
}
echo 'adding Linters'
extendedStage('Linters')
.handler(buildSummaryReport)
.required(!configuration.isChangeMerged())
.queue(stages, { lintersStage() })
echo 'adding Consumer Smoke Test'
extendedStage('Consumer Smoke Test').handler(buildSummaryReport).queue(stages) {
@ -470,11 +467,10 @@ pipeline {
.queue(stages, jobName: '/Canvas/test-suites/local-docker-dev-smoke', buildParameters: buildParameters)
}
if(configuration.isChangeMerged()) {
extendedStage('Dependency Check')
.handler(buildSummaryReport)
.queue(stages, { dependencyCheckStage() })
}
extendedStage('Dependency Check')
.handler(buildSummaryReport)
.required(configuration.isChangeMerged())
.queue(stages, { dependencyCheckStage() })
distribution.stashBuildScripts()