#!groovy node { try { stage('Checkout') { dir("cucumber/features") { // clean old features from last run, if it failed deleteDir() } checkout scm } stage('Export feature files') { step([$class: 'XrayExportBuilder', serverInstance: '89d8e9d1-8aff-4f28-8830-5d1217f0d789', filter: '11512', filePath: 'cucumber/features', ]) } stage('Test') { withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: "${credentials}", usernameVariable: 'CRED_USER', passwordVariable: 'CRED_PASSWORD']]) { docker.image("registry.nspop.dk/tools/node-chrome:16").inside("--entrypoint=''"){ dir("cucumber") { sh "npm install" try { sh "mkdir -p target" sh "DRG_USER=\"${CRED_USER}\" DRG_PASSWORD=\"${CRED_PASSWORD}\" ENV=\"${ENVIRONMENT}\" npm run test" } catch (err) { // dont yell - we upload test report slackSend channel: 'arosii_ci', color: 'bad', message: "${env.JOB_NAME} ${env.BUILD_NUMBER} - Tests failed ... (<${env.BUILD_URL}|Open>)", tokenCredentialId: 'Slack-Token' } } } } } } catch (err) { // TODO lkr: parse json report and post custom message with number of fails. slackSend channel: 'arosii_ci', color: 'bad', message: "${env.JOB_NAME} ${env.BUILD_NUMBER} - Jenkinsjob failed ... (<${env.BUILD_URL}|Open>)", tokenCredentialId: 'Slack-Token' throw err } finally { stage('Archive') { cucumber( reportTitle: 'CBS_NRT', fileIncludePattern: 'cucumber/target/*.json', trendsLimit: 10, ) if (fileExists("cucumber/target/report.json")) { step([$class: 'XrayImportBuilder', serverInstance: '89d8e9d1-8aff-4f28-8830-5d1217f0d789', projectKey: 'NRT', endpointName: '/cucumber', importFilePath: 'cucumber/target/report.json', importToSameExecution: 'true' ]) } } stage ('Clean') { deleteDir() } } }