Jenkinsfile 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. node{
  2. stage('Prepare Node and NPM') { // confirm nodejs plugin and setting
  3. env.NODEJS_HOME = "${tool 'NodeJS'}"
  4. //on linux / mac
  5. env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
  6. // on windows
  7. //env.PATH="${env.NODEJS_HOME};${env.PATH}"
  8. sh'node --version'
  9. sh 'npm --version'
  10. }
  11. stage('checkout'){
  12. deleteDir()
  13. checkout scm
  14. echo 'Pulling..................' + env.BRANCH_NAME
  15. }
  16. stage('Stop Container'){
  17. sh 'docker ps | grep "workflow_" -v | awk -F " " \'{if(NR>1)print $1}\' | xargs docker kill | xargs docker rm || true'
  18. sh 'docker system prune -f'
  19. }
  20. //stage('Build Container')
  21. // {
  22. // imageApache=docker.build('server-apache-dev', '--no-cache -f build/docker/apache/Dockerfile .')
  23. // imageSql=docker.build('server-mysql-dev', '--no-cache -f build/docker/mysql/Dockerfile .')
  24. // containerMysql=imageSql.run('--name server-mysql-dev')
  25. // containerApache=imageApache.run('-p 8080:80 --link server-mysql-dev:mysql')
  26. // }
  27. // stage('Waiting Container'){
  28. // waitUntil{
  29. // try{
  30. // sh "docker exec ${containerApache.id} php -v"
  31. // return true
  32. // } catch(Exception $e){
  33. // return false
  34. // }
  35. // }
  36. // }
  37. stage('stage 1bis'){
  38. sh 'docker -v'
  39. sh 'docker ps'
  40. }
  41. stage('stage 2bis'){
  42. sh 'ls -ls'
  43. }
  44. stage('bzip2'){
  45. sh 'apt-get update && apt-get install -y bzip2'
  46. }
  47. stage('Test') {
  48. dir("${env.WORKSPACE}/angular-client") {
  49. sh 'npm i @angular-devkit/build-angular@0.901.15'
  50. try {
  51. // Exporter la variable d'environnement NODE_OPTIONS
  52. sh 'export NODE_OPTIONS=--openssl-legacy-provider && npm run test-ci'
  53. } catch(err) {
  54. sh 'echo TEST FAILED'
  55. junit 'target/surefire-reports/TESTS-TestSuite.xml/*.xml'
  56. throw err
  57. }
  58. }
  59. }
  60. // def imageApache = stage("Build apache preprod")
  61. // {
  62. // 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 .")
  63. // }
  64. // def imageExpress = stage("Build express preprod")
  65. // {
  66. // docker.build("server-express-preprod", "--no-cache -f express-server/Dockerfile express-server")
  67. // }
  68. /*stage("Run Container express preprod")
  69. {
  70. containerSql=imageExpress.run("--name server-express-preprod -v /var/log:/var/www/app/log/root --link database_preprod:mongo --network=web")
  71. }
  72. stage("Run Container apache preprod")
  73. {
  74. containerApache=imageApache.run("--name server-apache-preprod --link server-mysql-preprod:mysql --network=web")
  75. }*/
  76. /*stage("Run Container express preprod")
  77. {
  78. containerSql=imageExpress.run("--name server-express-preprod -v /home/projet/fatboar/${e}/mysql:/var/lib/mysql --network=web")
  79. }
  80. stage("Run Container apache preprod")
  81. {
  82. containerApache=imageApache.run("--name server-apache-preprod --link server-mysql-preprod:mysql --network=web")
  83. }*/
  84. // stage("Push preprod images to nexus")
  85. // {
  86. // /*docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21')
  87. // {
  88. // imageApache.push('latest')
  89. // imageExpress.push('latest')
  90. // }*/
  91. // }
  92. // stage('SonarQube analysis')
  93. // {
  94. // def scannerHome = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation';
  95. // withSonarQubeEnv('SonarQube')
  96. // {
  97. // // If you have configured more than one global server connection, you can specify its name
  98. // sh "${scannerHome}/bin/sonar-scanner \
  99. // -Dsonar.projectKey=FatboarProject \
  100. // -Dsonar.sources=. \
  101. // -Dsonar.host.url=https://sonarqube.foodgame.fr \
  102. // -Dsonar.login=sqp_09ee9072c917af8212864baf0f75c950afc14c64"
  103. // }
  104. // }
  105. // stage('Build Docker MEAN Stack(Test Deployment)')
  106. // {
  107. // sh 'docker-compose -v'
  108. // sh 'docker-compose build'
  109. // sh 'docker-compose up -d'
  110. // }
  111. stage('Fin du Pipeline')
  112. {
  113. sh 'echo "Félicitation tout c\'est bien déroulé!"'
  114. }
  115. }