Jenkinsfile 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. node{
  2. env.NODEJS_HOME = "${tool 'NodeJS'}"
  3. // on linux / mac
  4. env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
  5. // on windows
  6. //env.PATH="${env.NODEJS_HOME};${env.PATH}"
  7. sh 'npm --version'
  8. stage('checkout')
  9. {
  10. deleteDir()
  11. checkout scm
  12. }
  13. // stage("Stop Preprod Container")
  14. // {
  15. // echo e ;
  16. // }
  17. // stage("Stop Preprod Container")
  18. // {
  19. // sh "docker kill server-apache-preprod server-express-preprod | docker rm server-apache-preprod server-express-preprod || true"
  20. // sh 'docker system prune -f'
  21. // }
  22. def imageApache = stage("Build apache preprod")
  23. {
  24. docker.build("server-apache-preprod", "--no-cache --label traefik.enable=true --label traefik.http.routers.server-apache-preprod.rule='Host(`angular-preprod.foodgame.fr`)' --label traefik.http.routers.server-apache-preprod.entrypoints=websecure --label traefik.http.routers.server-apache-preprod.tls.certresolver=myresolver -f build/docker/httpd/Dockerfile .")
  25. }
  26. def imageExpress = stage("Build express preprod")
  27. {
  28. docker.build("server-express-preprod", "--no-cache -f express-server/Dockerfile express-server")
  29. }
  30. stage("Run Container express preprod")
  31. {
  32. containerSql=imageExpress.run("--name server-express-preprod -v /home/formation/workflow/mysql:/var/lib/mysql --network=web")
  33. }
  34. stage("Run Container apache preprod")
  35. {
  36. containerApache=imageApache.run("--name server-apache-preprod --link server-mysql-preprod:mysql --network=web")
  37. }
  38. /*stage("Run Container express preprod")
  39. {
  40. containerSql=imageExpress.run("--name server-express-preprod -v /home/projet/fatboar/${e}/mysql:/var/lib/mysql --network=web")
  41. }
  42. stage("Run Container apache preprod")
  43. {
  44. containerApache=imageApache.run("--name server-apache-preprod --link server-mysql-preprod:mysql --network=web")
  45. }*/
  46. // stage("Wait mysql"){
  47. // imageSql.inside {
  48. // sh 'while ! mysqladmin ping -h0.0.0.0 --silent; do sleep 1; done'
  49. // }
  50. // }
  51. // stage("Run test"){
  52. // imageApache.inside {
  53. // sh "php /var/www/src/bin/console doctrine:schema:update --force"
  54. // sh "php /var/www/src/bin/phpunit"
  55. // }
  56. // }
  57. // stage("Push preprod images to nexus")
  58. // {
  59. // docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21')
  60. // {
  61. // imageApache.push('latest')
  62. // imageExpress.push('latest')
  63. // }
  64. // }
  65. // stage('Test')
  66. // {
  67. // dir("${env.WORKSPACE}/angular-client")
  68. // {
  69. // // sh 'npm i @angular-devkit/build-angular'
  70. // try
  71. // {
  72. // sh 'npm run test-ci'
  73. // }
  74. // catch(err)
  75. // {
  76. // sh 'echo TEST FAILED'
  77. // junit 'target/surefire-reports/TESTS-TestSuite.xml/*.xml'
  78. // throw err
  79. // }
  80. // /*def karma = docker.image('trion/ng-cli-karma')
  81. // karma.pull()
  82. // try
  83. // {
  84. // karma.run(' -u $(id -u) -v ${WORKSPACE}:/app trion/ng-cli-karma ')
  85. // karma.inside
  86. // {
  87. // sh 'npm install'
  88. // try
  89. // {
  90. // sh ('./node_modules/karma/bin/karma start karma.conf.js')
  91. // }
  92. // catch(err)
  93. // {
  94. // sh 'echo TEST FAILED'
  95. // step([$class: 'JUnitResultArchiver', testResults: 'target/surefire-reports/TESTS-TestSuite.xml/*.xml', healthScaleFactor: 1.0])
  96. // throw err
  97. // }
  98. // sh 'echo DO SOMETHING ELSE AFTER TEST'
  99. // }
  100. // sh 'ls -al '
  101. // }
  102. // catch(err)
  103. // {
  104. // sh 'echo RUN DOCKER FAILED'
  105. // throw err
  106. // }*/
  107. // }
  108. // }
  109. stage('ls')
  110. {
  111. sh 'ls -ls'
  112. }
  113. <<<<<<< HEAD
  114. stage("Run Container apache preprod")
  115. {
  116. containerApache=imageApache.run("--name server-apache-preprod --link server-mysql-preprod:mysql --network=web")
  117. }*/
  118. // stage("Push preprod images to nexus")
  119. // {
  120. // /*docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21')
  121. // {
  122. // imageApache.push('latest')
  123. // imageExpress.push('latest')
  124. // }*/
  125. // }
  126. stage('SonarQube analysis')
  127. {
  128. def scannerHome = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation';
  129. withSonarQubeEnv('SonarQube')
  130. {
  131. // If you have configured more than one global server connection, you can specify its name
  132. sh "${scannerHome}/bin/sonar-scanner \
  133. -Dsonar.projectKey=FatboarProject \
  134. -Dsonar.sources=. \
  135. -Dsonar.host.url=https://sonarqube.foodgame.fr \
  136. -Dsonar.login=sqp_09ee9072c917af8212864baf0f75c950afc14c64"
  137. }
  138. }
  139. stage('Build Docker MEAN Stack(PreProduction Deployment)')
  140. {
  141. sh 'docker-compose -v'
  142. sh 'docker-compose stop'
  143. sh 'docker-compose build'
  144. sh 'docker-compose up -d'
  145. }
  146. stage('Fin du Pipeline')
  147. {
  148. sh 'echo "Félicitation tout c\'est bien déroulé!"'
  149. }
  150. =======
  151. >>>>>>> dev
  152. }