forked from esbmc/esbmc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
58 lines (51 loc) · 1.81 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
pipeline {
agent {
kubernetes {
yaml '''
apiVersion: "v1"
kind: "Pod"
spec:
containers:
- name: "jnlp"
image: "rafaelsamenezes/esbmc-build:latest"
imagePullPolicy: "Always"
'''
}
}
stages {
stage('Build ESBMC') {
when {
expression {
env.BRANCH_NAME.contains("benchexec")
}
}
steps {
sh 'mkdir build && cd build && cmake .. -GNinja -DClang_DIR=$CLANG_HOME -DLLVM_DIR=$CLANG_HOME -DBUILD_STATIC=On -DBoolector_DIR=$HOME/boolector-3.2.0 -DCMAKE_INSTALL_PREFIX:PATH=$PWD/../release'
sh 'cd build && cmake --build . && cpack && mv ESBMC-*.sh ESBMC-Linux.sh'
zip(zipFile: 'esbmc.zip', archive: true, glob: 'build/ESBMC-Linux.sh')
}
}
stage('Run Benchexec') {
when {
expression {
env.BRANCH_NAME.contains("benchexec")
}
}
steps {
script {
def userInput = input(
id: 'userInput', message: 'Type the category from benchmark file', parameters: [
[$class: 'TextParameterDefinition', defaultValue: 'ConcurrencySafety-Main', name: 'category']
])
def built = build job: "benchexec-jenkins-job/high-res", parameters: [
string(name: 'tool_url', value: "https://ssvlab.ddns.net/job/esbmc-master/job/${env.BRANCH_NAME}/$BUILD_NUMBER/artifact/esbmc.zip"),
string(name: 'benchmark_url', value: "https://raw.githubusercontent.com/esbmc/esbmc/${env.BRANCH_NAME}/scripts/jenkins/benchmark.xml"),
string(name: 'prepare_environment_url', value: "https://raw.githubusercontent.com/esbmc/esbmc/${env.BRANCH_NAME}/scripts/jenkins/prepare_environment.sh"),
string(name: 'timeout', value: "900"),
string(name: 'category', value: userInput)
]
}
}
}
}
}