Linux 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. pipeline {
  2. agent {
  3. dockerfile { filename 'Jenkinsfiles/ubuntu-16.04.dockerfile' }
  4. }
  5. stages {
  6. stage('Build') {
  7. steps {
  8. sh '''
  9. ./Scripts/clean-check-prepare
  10. cd LibOS
  11. make -j 8 glibc-build/Build.success GLIBC_VERSION=2.23
  12. rm -r glibc-build
  13. cd ..
  14. make -j 8 WERROR=1
  15. make -j 8 WERROR=1 test
  16. make -C Pal/ipc/linux KERNELDIR=/lib/modules/4.4.0-161-generic/build
  17. make -C Pal/src -j 8 PAL_HOST=Skeleton WERROR=1
  18. '''
  19. }
  20. }
  21. stage('Test') {
  22. steps {
  23. sh '''
  24. cd Pal/regression
  25. make regression
  26. '''
  27. sh '''
  28. cd LibOS/shim/test/regression
  29. make regression
  30. '''
  31. sh '''
  32. cd LibOS/shim/test/apps/ltp
  33. make
  34. make ltp.xml
  35. '''
  36. timeout(time: 5, unit: 'MINUTES') {
  37. sh '''
  38. cd LibOS/shim/test/apps/python-simple
  39. make check
  40. '''
  41. }
  42. timeout(time: 5, unit: 'MINUTES') {
  43. sh '''
  44. cd LibOS/shim/test/apps/python-scipy-insecure
  45. make check
  46. '''
  47. }
  48. sh '''
  49. cd LibOS/shim/test/apps/bash
  50. make regression
  51. '''
  52. timeout(time: 5, unit: 'MINUTES') {
  53. sh '''
  54. cd LibOS/shim/test/apps/curl
  55. make check
  56. '''
  57. }
  58. timeout(time: 5, unit: 'MINUTES') {
  59. sh '''
  60. cd LibOS/shim/test/apps/gcc
  61. make check
  62. '''
  63. }
  64. timeout(time: 15, unit: 'MINUTES') {
  65. sh '''
  66. cd LibOS/shim/test/apps/lmbench
  67. make regression N_RUNS=1 ENOUGH=100
  68. '''
  69. }
  70. sh '''
  71. cd LibOS/shim/test/apps/lighttpd
  72. make
  73. make start-graphene-server &
  74. sleep 1
  75. LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8003
  76. '''
  77. sh '''
  78. cd LibOS/shim/test/apps/nginx
  79. make
  80. make start-graphene-server &
  81. sleep 1
  82. LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8002
  83. '''
  84. sh '''
  85. cd LibOS/shim/test/apps/apache
  86. make
  87. make start-graphene-server &
  88. sleep 1
  89. LOOP=1 CONCURRENCY_LIST="1 32" ./benchmark-http.sh 127.0.0.1:8001
  90. '''
  91. sh '''
  92. cd "$(./Scripts/clean-check-test-copy)"
  93. make clean
  94. rm -r LibOS/glibc-2.23
  95. rm LibOS/glibc-*.tar.gz
  96. make -C Pal/ipc/linux KERNELDIR=/lib/modules/4.4.0-161-generic/build clean
  97. make -C LibOS/shim/test/regression clean
  98. make -C LibOS/shim/test/apps/ltp clean
  99. # LTP's make clean is broken, see https://github.com/linux-test-project/ltp/issues/559
  100. rm -rf /tmp/graphene.clean-check.clean/LibOS/shim/test/apps/ltp/src
  101. rm -rf LibOS/shim/test/apps/ltp/src
  102. make -C LibOS/shim/test/apps/python-simple clean
  103. make -C LibOS/shim/test/apps/python-scipy-insecure clean
  104. make -C LibOS/shim/test/apps/bash clean
  105. make -C LibOS/shim/test/apps/curl clean
  106. make -C LibOS/shim/test/apps/gcc clean
  107. make -C LibOS/shim/test/apps/lmbench clean
  108. make -C LibOS/shim/test/apps/lighttpd distclean
  109. make -C LibOS/shim/test/apps/nginx distclean
  110. make -C LibOS/shim/test/apps/apache distclean
  111. make -C Pal/src PAL_HOST=Skeleton clean
  112. ./Scripts/clean-check
  113. '''
  114. }
  115. post {
  116. always {
  117. archiveArtifacts 'LibOS/shim/test/apps/ltp/ltp.xml'
  118. junit 'Pal/regression/pal-regression.xml'
  119. junit 'LibOS/shim/test/regression/libos-regression.xml'
  120. junit 'LibOS/shim/test/apps/ltp/ltp.xml'
  121. }
  122. }
  123. }
  124. stage('Deploy') {
  125. steps {
  126. sh 'echo Deploying code'
  127. }
  128. }
  129. }
  130. post {
  131. success {
  132. echo 'Deployment successful'
  133. }
  134. failure {
  135. echo 'Failure while on the pipeline'
  136. }
  137. unstable {
  138. echo 'Pipeline marked as "unstable"'
  139. }
  140. }
  141. }