mirror of
https://github.com/clearlinux/graphene.git
synced 2026-09-06 05:41:37 +00:00
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.
168 lines
7.0 KiB
Plaintext
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"'
|
|
}
|
|
}
|
|
}
|