Files

118 lines
4.7 KiB
Plaintext

pipeline {
agent {
dockerfile { filename 'Jenkinsfiles/ubuntu-16.04.dockerfile' }
}
stages {
stage('Build') {
steps {
sh '''
./Scripts/clean-check-prepare
make -j 8 DEBUG=1 WERROR=1
make -j 8 DEBUG=1 WERROR=1 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/apps/ltp
make
./syscalls.sh
'''
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/python
make regression
'''
}
sh '''
cd LibOS/shim/test/apps/bash
make regression
'''
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/gcc
make regression
'''
}
timeout(time: 20, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/lmbench
make regression N_RUNS=1 ENOUGH=100
'''
}
sh '''
cd LibOS/shim/test/apps/lighttpd
make
make start-graphene-server &
sleep 1
LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8000
'''
sh '''
cd LibOS/shim/test/apps/apache
make
make start-graphene-server &
sleep 1
LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8001
'''
sh '''
cd "$(./Scripts/clean-check-test-copy)"
make clean
rm LibOS/glibc-*.tar.gz
make -C LibOS/shim/test/regression clean
make -C LibOS/shim/test/apps/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/apps/ltp/src
rm -rf LibOS/shim/test/apps/ltp/src
make -C LibOS/shim/test/apps/python clean
make -C LibOS/shim/test/apps/bash clean
make -C LibOS/shim/test/apps/gcc clean
make -C LibOS/shim/test/apps/lmbench clean
make -C LibOS/shim/test/apps/lighttpd distclean
make -C LibOS/shim/test/apps/apache distclean
make -C Pal/src PAL_HOST=Skeleton clean
./Scripts/clean-check
'''
}
post {
always {
junit 'Pal/regression/pal-regression.xml'
junit 'LibOS/shim/test/regression/libos-regression.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"'
}
}
}