forked from cmu-db/noisepage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile-nightly
89 lines (79 loc) · 3.94 KB
/
Jenkinsfile-nightly
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
pipeline {
agent none
environment{
//Do not change.
//Performance Storage Service(Django) authentication information. The credentials can only be changed on Jenkins webpage
PSS_CREATOR= credentials('pss-creator')
}
options {
buildDiscarder(logRotator(daysToKeepStr: '30'))
parallelsAlwaysFailFast()
}
triggers {
cron('H H(2-3) * * *')
}
stages {
stage('Performance') {
agent { label 'benchmark' }
steps {
sh 'echo $NODE_NAME'
sh script:'echo y | sudo ./script/installation/packages.sh all', label: 'Installing packages'
sh script:'''
mkdir build
cd build
cmake -GNinja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Release -DNOISEPAGE_USE_ASAN=OFF -DNOISEPAGE_USE_JEMALLOC=ON -DNOISEPAGE_BUILD_TESTS=OFF ..
ninja noisepage''', label: 'Compiling'
catchError(stageResult: 'Failure'){
sh script:'''
cd build
timeout 3h python3 ../script/testing/oltpbench/run_oltpbench.py --config-file=../script/testing/oltpbench/configs/nightly/nightly.json --build-type=release --publish-results=prod --publish-username=${PSS_CREATOR_USR} --publish-password=${PSS_CREATOR_PSW}
''', label: 'OLTPBench (HDD WAL)'
}
catchError(stageResult: 'Failure'){
sh script:'''
cd build
timeout 3h python3 ../script/testing/oltpbench/run_oltpbench.py --config-file=../script/testing/oltpbench/configs/nightly/nightly_ramdisk.json --build-type=release --publish-results=prod --publish-username=${PSS_CREATOR_USR} --publish-password=${PSS_CREATOR_PSW}
''', label: 'OLTPBench (RamDisk WAL)'
}
catchError(stageResult: 'Failure'){
sh script:'''
cd build
timeout 3h python3 ../script/testing/oltpbench/run_oltpbench.py --config-file=../script/testing/oltpbench/configs/nightly/nightly_wal_disabled.json --build-type=release --publish-results=prod --publish-username=${PSS_CREATOR_USR} --publish-password=${PSS_CREATOR_PSW}
''', label: 'OLTPBench (No WAL)'
}
archiveArtifacts(artifacts: 'build/oltp_result/**/*.*', excludes: 'build/oltp_result/**/*.csv', fingerprint: true)
}
post {
cleanup {
deleteDir()
}
}
}
stage('Microbenchmark') {
agent { label 'benchmark' }
steps {
sh 'echo $NODE_NAME'
sh script:'echo y | sudo ./script/installation/packages.sh all', label: 'Installing packages'
sh script:'''
mkdir build
cd build
cmake -GNinja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Release -DNOISEPAGE_USE_ASAN=OFF -DNOISEPAGE_USE_JEMALLOC=ON -DNOISEPAGE_BUILD_TESTS=OFF ..
ninja''', label: 'Compiling'
// The micro_bench configuration has to be consistent because we currently check against previous runs with the same config
// # of Threads: 4
// WAL Path: Ramdisk
sh script:'''
cd script/testing
python3 microbench/run_microbench.py --run --num-threads=4 --benchmark-path $(pwd)/../../build/benchmark --logfile-path=/mnt/ramdisk/benchmark.log --publish-results=prod --publish-username=${PSS_CREATOR_USR} --publish-password=${PSS_CREATOR_PSW}
''', label:'Microbenchmark'
archiveArtifacts 'script/testing/*.json'
junit 'script/testing/*.xml'
}
post {
cleanup {
deleteDir()
}
}
}
}
}