split packages into own node

refs DE-1215

Change-Id: I601bf51238c69e8eaa7e74a093ffcebec77e411e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/293024
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
This commit is contained in:
Aaron Ogata 2022-06-01 11:01:03 -07:00
parent 485dc1df16
commit 433bbef122
2 changed files with 24 additions and 1 deletions

View File

@ -86,6 +86,14 @@ pipeline {
parallel(tests)
}
extendedStage('Runner - Packages').hooks(postStageHandler).nodeRequirements(label: 'canvas-docker', podTemplate: jsStage.packagesNodeRequirementsTemplate()).obeysAllowStages(false).timeout(10).queue(runnerStages) {
def tests = [:]
callableWithDelegate(jsStage.queuePackagesDistribution())(tests)
parallel(tests)
}
parallel(runnerStages)
}
}

View File

@ -53,13 +53,24 @@ def karmaNodeRequirementsTemplate() {
def karmaContainers = []
karmaContainers = karmaContainers + (0..JSG_NODE_COUNT).collect { index -> baseTestContainer + [name: "jsg${index}"] }
karmaContainers = karmaContainers + ['jsa', 'jsh', 'packages'].collect { group -> baseTestContainer + [name: group] }
karmaContainers = karmaContainers + ['jsa', 'jsh'].collect { group -> baseTestContainer + [name: group] }
return [
containers: karmaContainers,
]
}
def packagesNodeRequirementsTemplate() {
def baseTestContainer = [
image: env.KARMA_RUNNER_IMAGE,
command: 'cat'
]
return [
containers: [baseTestContainer + [name: "packages"]],
]
}
def tearDownNode() {
return {
copyToWorkspace srcBaseDir: '/usr/src/app', path: env.TEST_RESULT_OUTPUT_DIR
@ -129,7 +140,11 @@ def queueKarmaDistribution() {
['jsa', 'jsh'].each { group ->
callableWithDelegate(queueTestStage())(stages, "${group}", ["JSPEC_GROUP=${group}"], 'yarn test:karma:headless')
}
}
}
def queuePackagesDistribution() {
{ stages ->
callableWithDelegate(queueTestStage())(stages, 'packages', [], 'TEST_RESULT_OUTPUT_DIR=/usr/src/app/$TEST_RESULT_OUTPUT_DIR yarn test:packages')
}
}