-
Notifications
You must be signed in to change notification settings - Fork 2
/
Jenkinsfile
60 lines (59 loc) · 1.9 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
pipeline {
options {
disableConcurrentBuilds()
skipDefaultCheckout(true)
}
agent { label 'dss-plugin-tests'}
environment {
PLUGIN_INTEGRATION_TEST_INSTANCE="$HOME/instance_config.json"
UNIT_TEST_FILES_STATUS_CODE = sh(script: 'ls ./tests/*/unit/test*', returnStatus: true)
INTEGRATION_TEST_FILES_STATUS_CODE = sh(script: 'ls ./tests/*/integration/test*', returnStatus: true)
}
stages {
stage('Clear Workspace') {
steps {
cleanWs()
checkout scm
}
}
stage('Run Unit Tests') {
when { environment name: 'UNIT_TEST_FILES_STATUS_CODE', value: "0"}
steps {
sh 'echo "Running unit tests"'
catchError(stageResult: 'FAILURE') {
sh """
make unit-tests
"""
}
sh 'echo "Done with unit tests"'
}
}
stage('Run Integration Tests') {
when { environment name: 'INTEGRATION_TEST_FILES_STATUS_CODE', value: "0"}
steps {
sh 'echo "Running integration tests"'
catchError(stageResult: 'FAILURE') {
sh """
make integration-tests
"""
}
sh 'echo "Done with integration tests"'
}
}
}
post {
always {
script {
allure([
includeProperties: false,
jdk: '',
properties: [],
reportBuildPolicy: 'ALWAYS',
results: [[path: 'tests/allure_report']]
])
def status = currentBuild.currentResult
sh "file_name=\$(echo ${env.JOB_NAME} | tr '/' '-').status; touch \$file_name; echo \"${env.BUILD_URL};${env.CHANGE_TITLE};${env.CHANGE_AUTHOR};${env.CHANGE_URL};${env.BRANCH_NAME};${status};\" >> $HOME/daily-statuses/\$file_name"
}
}
}
}