Jenkinsfile 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. stage('Build and Push Docker Image') {
  17. // Définition des variables
  18. def dockerImageName = 'workflow_jenkins_1'
  19. def dockerImageTag = 'latest'
  20. def nexusUrl = 'https://nexus.foodgame.fr'
  21. def nexusRepository = 'fatboar_repo'
  22. def nexusUsername = 'admin'
  23. def nexusPassword = 'azerty10'
  24. // Étape de connexion au registre Docker Nexus
  25. sh "docker login -u ${nexusUsername} -p ${nexusPassword} ${nexusUrl}"
  26. // Étape de balisage de l'image Docker pour le registre Nexus
  27. sh "docker tag ${dockerImageName}:${dockerImageTag} ${nexusUrl}/repository/${nexusRepository}/${dockerImageName}:${dockerImageTag}"
  28. // Étape de poussée de l'image Docker vers le registre Nexus
  29. sh "docker push ${nexusUrl}/repository/${nexusRepository}/${dockerImageName}:${dockerImageTag}"
  30. }
  31. stage('Build Docker MEAN Stack(PreProduction Deployment)') {
  32. sh 'docker-compose -v'
  33. sh 'docker-compose stop'
  34. sh 'docker-compose build'
  35. sh 'docker-compose up -d'
  36. }
  37. stage('Fin du Pipeline') {
  38. sh 'echo "Félicitation tout s\'est bien déroulé!"'
  39. }
  40. }