Jenkinsfile 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. node{
  2. // stage('Prepare Node and NPM') { // confirm nodejs plugin and setting
  3. // env.NODEJS_HOME = "${tool 'nodejs-10.15.3'}"
  4. // env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
  5. // sh 'npm --version'
  6. // }
  7. //env.NODEJS_HOME = "${tool 'NodeJS'}"
  8. // on linux / mac
  9. //env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
  10. // on windows
  11. //env.PATH="${env.NODEJS_HOME};${env.PATH}"
  12. //sh 'npm --version'
  13. stage('checkout'){
  14. deleteDir()
  15. checkout scm
  16. }
  17. stage('Stop Container'){
  18. sh 'docker ps | grep "workflow_" -v | awk -F " " \'{if(NR>1)print $1}\' | xargs docker kill | xargs docker rm || true'
  19. sh 'docker system prune -f'
  20. }
  21. // stage('Build Container')
  22. // {
  23. // imageApache=docker.build('server-apache-dev', '--no-cache -f build/docker/apache/Dockerfile .')
  24. // imageSql=docker.build('server-mysql-dev', '--no-cache -f build/docker/mysql/Dockerfile .')
  25. // containerMysql=imageSql.run('--name server-mysql-dev')
  26. // containerApache=imageApache.run('-p 8080:80 --link server-mysql-dev:mysql')
  27. // }
  28. // stage('Waiting Container'){
  29. // waitUntil{
  30. // try{
  31. // sh "docker exec ${containerApache.id} php -v"
  32. // return true
  33. // } catch(Exception $e){
  34. // return false
  35. // }
  36. // }
  37. // }
  38. stage('stage 1bis'){
  39. sh 'docker -v'
  40. sh 'docker ps'
  41. }
  42. stage('stage 2bis'){
  43. sh 'ls -ls'
  44. }
  45. stage('Build Angular PreProduction')
  46. {
  47. //sh 'docker build -f build/docker/apache/Dockerfile -t sample-app:0.1 angular-client/dist'
  48. //sh 'docker run -d -p 8080:80 --name sample-app sample-app:0.1'
  49. //imageApache=docker.build('server-apache-dev', '--no-cache -f build/docker/apache/Dockerfile .')
  50. //containerApache=imageApache.run('-p 8080:80')
  51. dir("${env.WORKSPACE}/angular-client")
  52. {
  53. //sh 'npm install'
  54. //sh 'npm run-script build'
  55. //sh 'npm install -g firebase-tools'
  56. //sh 'firebase deploy --token 1//034mfWw9ZUdOKCgYIARAAGAMSNwF-L9Ir-Ql0JG0M9RA3PJStufMSA-2gEVAiyiu6_plL9KQdHn3kuIiNGBVuDQpotPgjltv4nWc'
  57. }
  58. }
  59. def imageApache = stage("Build apache preprod")
  60. {
  61. 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 .")
  62. }
  63. def imageExpress = stage("Build express preprod")
  64. {
  65. docker.build("server-express-preprod", "--no-cache -f express-server/Dockerfile express-server")
  66. }
  67. /*stage("Run Container express preprod")
  68. {
  69. containerSql=imageExpress.run("--name server-express-preprod -v /home/projet/fatboar/${e}/mysql:/var/lib/mysql --network=web")
  70. }
  71. stage("Run Container apache preprod")
  72. {
  73. containerApache=imageApache.run("--name server-apache-preprod --link server-mysql-preprod:mysql --network=web")
  74. }*/
  75. // stage("Push preprod images to nexus")
  76. // {
  77. // /*docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21')
  78. // {
  79. // imageApache.push('latest')
  80. // imageExpress.push('latest')
  81. // }*/
  82. // }
  83. stage('Build Docker MEAN Stack(PreProduction Deployment)')
  84. {
  85. sh 'docker-compose -v'
  86. sh 'docker-compose build'
  87. sh 'docker-compose up -d'
  88. }
  89. stage('Fin du Pipeline')
  90. {
  91. sh 'echo "Félicitation tout c\'est bien déroulé!"'
  92. }
  93. }