Files
graphene/Jenkinsfiles/Linux-Debug

186 lines
7.8 KiB
Plaintext

pipeline {
agent {
dockerfile { filename 'Jenkinsfiles/ubuntu-16.04.dockerfile' }
}
stages {
stage('Lint') {
steps {
sh '''
./.ci/run-shellcheck || :
./.ci/run-shellcheck -f json | ./.ci/prfilter
'''
}
}
stage('Build') {
steps {
sh '''
./Scripts/clean-check-prepare
make -j 8 DEBUG=1 WERROR=1 GLIBC_VERSION=2.27
make -j 8 DEBUG=1 WERROR=1 GLIBC_VERSION=2.27 test
'''
sh '''
cd Pal/src
make -j 8 PAL_HOST=Skeleton DEBUG=1 WERROR=1
'''
}
}
stage('Test') {
steps {
sh '''
cd Pal/regression
make regression
'''
sh '''
cd LibOS/shim/test/regression
make regression
'''
sh '''
cd LibOS/shim/test/fs
make test
'''
sh '''
cd LibOS/shim/test/ltp
make
make ltp.xml
'''
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd Examples/python-simple
make check
'''
}
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd Examples/python-scipy-insecure
make check
'''
}
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd Examples/bash
make regression
'''
}
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd Examples/curl
make check
'''
}
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd Examples/gcc
make check
'''
}
timeout(time: 20, unit: 'MINUTES') {
sh '''
cd Examples/lmbench
make test N_RUNS=1 ENOUGH=100
'''
}
timeout(time: 10, unit: 'MINUTES') {
sh '''
cd Examples/redis
make USE_SELECT=1
make start-graphene-server &
sleep 1
./src/src/redis-benchmark
'''
}
timeout(time: 10, unit: 'MINUTES') {
sh '''
cd Examples/lighttpd
make
make start-graphene-server &
sleep 1
LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8003
'''
}
timeout(time: 10, unit: 'MINUTES') {
sh '''
cd Examples/nginx
make
make start-graphene-server &
sleep 1
LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8002
'''
}
timeout(time: 20, unit: 'MINUTES') {
sh '''
cd Examples/apache
make
make start-graphene-server &
sleep 1
LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8001
LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh https://127.0.0.1:8443
'''
}
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd Examples/blender
make check
'''
}
sh '''
# Workaround LTP bug (see https://github.com/linux-test-project/ltp/issues/560 for upstream fix):
git -C LibOS/shim/test/ltp/src checkout -- utils/ffsb-6.0-rc2/config.h.in utils/ffsb-6.0-rc2/configure
./Scripts/gitignore-test
'''
sh '''
cd "$(./Scripts/clean-check-test-copy)"
make GLIBC_VERSION=2.27 distclean
make -C LibOS/shim/test/regression clean
make -C LibOS/shim/test/ltp clean
# LTP's make clean is broken, see https://github.com/linux-test-project/ltp/issues/559
rm -rf /tmp/graphene-debug.clean-check.clean/LibOS/shim/test/ltp/src
rm -rf LibOS/shim/test/ltp/src
make -C Examples/python-simple clean
make -C Examples/python-scipy-insecure clean
make -C Examples/bash clean
make -C Examples/curl clean
make -C Examples/gcc clean
make -C Examples/lmbench distclean
make -C Examples/redis distclean
make -C Examples/lighttpd distclean
make -C Examples/nginx distclean
make -C Examples/apache distclean
make -C Examples/blender distclean
make -C Pal/src PAL_HOST=Skeleton clean
./Scripts/clean-check
'''
}
post {
always {
archiveArtifacts 'LibOS/shim/test/ltp/ltp.xml'
junit 'Pal/regression/pal-regression.xml'
junit 'LibOS/shim/test/regression/libos-regression.xml'
junit 'LibOS/shim/test/ltp/ltp.xml'
}
}
}
stage('Deploy') {
steps {
sh 'echo Deploying code'
}
}
}
post {
success {
echo 'Deployment successful'
}
failure {
echo 'Failure while on the pipeline'
}
unstable {
echo 'Pipeline marked as "unstable"'
}
}
}