#!/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 . */ pipeline { agent none options { ansiColor('xterm') } environment { COMPOSE_FILE = 'docker-compose.new-jenkins.yml:docker-compose.new-jenkins-selenium.yml' // 'refs/changes/63/181863/8' -> '63.181863.8' NAME = "${env.GERRIT_REFSPEC}".minus('refs/changes/').replaceAll('/','.') PATCHSET_TAG = "$DOCKER_REGISTRY_FQDN/jenkins/canvas-lms:$NAME" } // Todo: This will run all xbrowser tests consecutively, still need to get parallel depending on runtime stages { stage ('Pre-Cleanup') { steps { timeout(time: 2) { sh 'build/new-jenkins/docker-cleanup.sh' } } } stage ('Xbrowser Tests') { agent { label 'canvas-docker' } steps { timeout(time: 60) { sh 'printenv | sort' sh 'build/new-jenkins/docker-compose-pull.sh' sh 'build/new-jenkins/docker-compose-pull-selenium.sh' sh 'build/new-jenkins/docker-compose-build-up.sh' sh 'build/new-jenkins/docker-compose-create-migrate-database.sh' sh 'build/new-jenkins/xbrowser-test.sh' } } } } post { unsuccessful { // copy spec failures to local sh 'docker cp $(docker-compose ps -q web):/usr/src/app/log/spec_failures/ ./tmp' script { def htmlFiles // find all results files dir ('tmp') { htmlFiles = findFiles glob: '**/index.html' } // publish html publishHTML target: [ allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, reportDir: "tmp", reportFiles: htmlFiles.join(','), reportName: 'Test Failures' ] } } cleanup { sh 'rm -rf ./tmp/spec_failures' sh 'build/new-jenkins/docker-cleanup.sh --allow-failure' } } }