#!/usr/bin/env groovy /* * Copyright (C) 2019 - present Instructure, Inc. * * This file is part of Canvas. * * Canvas is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, version 3 of the License. * * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more * details. * * You should have received a copy of the GNU Affero General Public License along * with this program. If not, see . */ def getImageTagVersion() { def flags = load 'build/new-jenkins/groovy/commit-flags.groovy' return flags.getImageTagVersion() } pipeline { agent { label 'canvas-docker' } options { ansiColor('xterm') } environment { COMPOSE_FILE = 'docker-compose.new-jenkins.yml' } stages { stage ('Setup') { steps { timeout(time: 5) { sh 'build/new-jenkins/docker-cleanup.sh' sh 'build/new-jenkins/print-env-excluding-secrets.sh' sh 'build/new-jenkins/docker-compose-pull.sh' sh 'build/new-jenkins/docker-compose-build-up.sh' sh 'build/new-jenkins/docker-compose-create-database.sh' } } } stage ('Run Vendored Gems specs') { steps { timeout(time: 10) { sh 'build/new-jenkins/test-gems.sh' } } } } post { always { // copy the test results from the container sh 'docker cp $(docker ps -f "ancestor"="$PATCHSET_TAG" -q):/usr/src/app/tmp/spec_results/. ./spec_results/' script { def htmlFiles // find all results files dir ('spec_results') { sh 'mv report.html canvas_i18nliner_results.html' htmlFiles = findFiles glob: '*results.html' } // publish html publishHTML target: [ allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, reportDir: "spec_results", reportFiles: htmlFiles.join(','), reportName: 'Test Results' ] } } cleanup { sh 'rm -vrf ./spec_results/' sh 'build/new-jenkins/docker-cleanup.sh --allow-failure' } } }