Jenkinsfile 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. node {
  2. node {
  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 'npm --version'
  9. stage('checkout') {
  10. deleteDir()
  11. checkout scm
  12. }
  13. stage('Stop Containers') {
  14. stage('checkout') {
  15. deleteDir()
  16. checkout scm
  17. }
  18. stage('Stop Containers') {
  19. sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
  20. sh 'docker system prune -f'
  21. }
  22. stage('Build and Push Docker Image') {
  23. withCredentials([usernamePassword(credentialsId: 'nexus', usernameVariable: 'admin', passwordVariable: 'azerty10')]) {
  24. // Définition des variables
  25. def dockerImageName = 'workflow_jenkins_1'
  26. def dockerImageTag = 'latest'
  27. def nexusUrl = 'https://nexus.foodgame.fr'
  28. def nexusRepository = 'fatboar_repo'
  29. // Étape de construction de l'image Docker
  30. sh "docker build -t ${dockerImageName}:${dockerImageTag} ."
  31. // Étape de connexion au registre Docker Nexus
  32. sh "docker login -u ${admin} -p ${azerty10} ${nexusUrl}"
  33. // Étape de balisage de l'image Docker pour le registre Nexus
  34. sh "docker tag ${dockerImageName}:${dockerImageTag} ${nexusUrl}/repository/${nexusRepository}/${dockerImageName}:${dockerImageTag}"
  35. // Étape de poussée de l'image Docker vers le registre Nexus
  36. sh "docker push ${nexusUrl}/repository/${nexusRepository}/${dockerImageName}:${dockerImageTag}"
  37. }
  38. }
  39. stage('Build Docker MEAN Stack(PreProduction Deployment)') {
  40. sh 'docker-compose -v'
  41. sh 'docker-compose stop'
  42. sh 'docker-compose build'
  43. sh 'docker-compose up -d'
  44. }
  45. stage('Fin du Pipeline') {
  46. sh 'echo "Félicitation tout s\'est bien déroulé!"'
  47. }
  48. }