Jenkinsfile 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. deleteDir()
  10. checkout scm
  11. }
  12. stage('Stop Containers') {
  13. sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
  14. sh 'docker system prune -f'
  15. }
  16. node {
  17. env.NODEJS_HOME = "${tool 'NodeJS'}"
  18. // on linux / mac
  19. env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
  20. // on windows
  21. //env.PATH="${env.NODEJS_HOME};${env.PATH}"
  22. sh 'npm --version'
  23. stage('checkout') {
  24. deleteDir()
  25. checkout scm
  26. }
  27. stage('Stop Containers') {
  28. sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
  29. sh 'docker system prune -f'
  30. }
  31. stage('Push Docker images to Nexus') {
  32. environment {
  33. NEXUS_URL = 'https://nexus.foodgame.fr'
  34. NEXUS_CREDENTIAL_ID = 'nexus'
  35. NEXUS_USERNAME = 'admin'
  36. NEXUS_PASSWORD = 'azerty10'
  37. DOCKER_IMAGE_NAME = 'workflow_jenkins_1'
  38. DOCKER_IMAGE_TAG = 'latest'
  39. }
  40. script {
  41. withCredentials([usernamePassword(credentialsId: env.NEXUS_CREDENTIAL_ID, usernameVariable: 'NEXUS_USERNAME', passwordVariable: 'NEXUS_PASSWORD')]) {
  42. def dockerImage = "${env.DOCKER_IMAGE_NAME}:${env.DOCKER_IMAGE_TAG}"
  43. def dockerRegistryUrl = "${env.NEXUS_URL}/repository/${env.DOCKER_IMAGE_NAME}/"
  44. // Build Docker image
  45. sh "docker build -t ${dockerImage} ."
  46. // Tag Docker image for Nexus repository
  47. sh "docker tag ${dockerImage} ${dockerRegistryUrl}${dockerImage}"
  48. // Login to Nexus Docker registry
  49. sh "docker login -u ${env.NEXUS_USERNAME} -p ${env.NEXUS_PASSWORD} ${env.NEXUS_URL}"
  50. // Push Docker image to Nexus repository
  51. sh "docker push ${dockerRegistryUrl}${dockerImage}"
  52. }
  53. }
  54. }
  55. stage('Build Docker MEAN Stack(PreProduction Deployment)') {
  56. sh 'docker-compose -v'
  57. sh 'docker-compose stop'
  58. sh 'docker-compose build'
  59. sh 'docker-compose up -d'
  60. }
  61. stage('Fin du Pipeline') {
  62. sh 'echo "Félicitation tout s\'est bien déroulé!"'
  63. }
  64. }
  65. stage('Build Docker MEAN Stack(PreProduction Deployment)') {
  66. sh 'docker-compose -v'
  67. sh 'docker-compose stop'
  68. sh 'docker-compose build'
  69. sh 'docker-compose up -d'
  70. }
  71. stage('Fin du Pipeline') {
  72. sh 'echo "Félicitation tout s\'est bien déroulé!"'
  73. }
  74. }