Files
Dmitrii Kuvaiskii 7d99d4788c [LibOS,Pal] Remove Graphene IPC completely
Graphene IPC (GIPC) was introduced to perform faster bulk IPC by sharing pages as copy-on-write
across processes. This feature became stale, and it was shown that recent Linux kernels (4.2+)
have zero-copy transfers over UNIX sockets and exhibit similar performance. GIPC is not built and
not tested in Jenkins. Also, GIPC does not work under SGX. This commit completely removes GIPC.
2019-12-30 12:17:51 -08:00

168 lines
7.0 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
cd LibOS
make -j 8 glibc-build/Build.success GLIBC_VERSION=2.23
rm -r glibc-build
cd ..
make -j 8 WERROR=1
make -j 8 WERROR=1 test
make -C Pal/src -j 8 PAL_HOST=Skeleton 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/apps/ltp
make
make ltp.xml
'''
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/python-simple
make check
'''
}
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/python-scipy-insecure
make check
'''
}
sh '''
cd LibOS/shim/test/apps/bash
make regression
'''
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/curl
make check
'''
}
timeout(time: 5, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/gcc
make check
'''
}
timeout(time: 15, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/lmbench
make test N_RUNS=1 ENOUGH=100
'''
}
timeout(time: 10, unit: 'MINUTES') {
sh '''
cd LibOS/shim/test/apps/redis
make USE_SELECT=1
make start-graphene-server &
sleep 1
./src/src/redis-benchmark
'''
}
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:8003
'''
sh '''
cd LibOS/shim/test/apps/nginx
make
make start-graphene-server &
sleep 1
LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8002
'''
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
make -C Pal/lib distclean
rm -r LibOS/glibc-2.23
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.clean-check.clean/LibOS/shim/test/apps/ltp/src
rm -rf LibOS/shim/test/apps/ltp/src
make -C LibOS/shim/test/apps/python-simple clean
make -C LibOS/shim/test/apps/python-scipy-insecure clean
make -C LibOS/shim/test/apps/bash clean
make -C LibOS/shim/test/apps/curl clean
make -C LibOS/shim/test/apps/gcc clean
make -C LibOS/shim/test/apps/lmbench distclean
make -C LibOS/shim/test/apps/redis distclean
make -C LibOS/shim/test/apps/lighttpd distclean
make -C LibOS/shim/test/apps/nginx distclean
make -C LibOS/shim/test/apps/apache distclean
make -C Pal/src PAL_HOST=Skeleton clean
./Scripts/clean-check
'''
}
post {
always {
archiveArtifacts 'LibOS/shim/test/apps/ltp/ltp.xml'
junit 'Pal/regression/pal-regression.xml'
junit 'LibOS/shim/test/regression/libos-regression.xml'
junit 'LibOS/shim/test/apps/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"'
}
}
}