Jenkinsfile 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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('Push Docker images to Nexus') {
  17. environment {
  18. NEXUS_URL = 'https://nexus.foodgame.fr'
  19. NEXUS_CREDENTIAL_ID = 'nexus'
  20. NEXUS_USERNAME = 'admin'
  21. NEXUS_PASSWORD = 'azerty10'
  22. DOCKER_IMAGE_NAME = 'workflow_jenkins_1'
  23. DOCKER_IMAGE_TAG = 'latest'
  24. }
  25. script {
  26. withCredentials([usernamePassword(
  27. credentialsId: env.NEXUS_CREDENTIAL_ID,
  28. usernameVariable: 'NEXUS_USERNAME',
  29. passwordVariable: 'NEXUS_PASSWORD'
  30. )]) {
  31. def dockerImage = "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}"
  32. def dockerRegistryUrl = "${NEXUS_URL}/repository/${DOCKER_IMAGE_NAME}/"
  33. // Utilisation de docker.withRegistry pour gérer l'authentification Docker
  34. docker.withRegistry("${NEXUS_URL}", "${NEXUS_CREDENTIAL_ID}") {
  35. // Construction de l'image Docker
  36. sh "docker build -t ${dockerImage} ."
  37. // Tag de l'image Docker pour le dépôt Nexus
  38. sh "docker tag ${dockerImage} ${dockerRegistryUrl}${dockerImage}"
  39. // Pousser l'image Docker vers le dépôt Nexus
  40. sh "docker push ${dockerRegistryUrl}${dockerImage}"
  41. }
  42. }
  43. }
  44. }
  45. stage('Build Docker MEAN Stack(PreProduction Deployment)') {
  46. sh 'docker-compose -v'
  47. sh 'docker-compose stop'
  48. sh 'docker-compose build'
  49. sh 'docker-compose up -d'
  50. }
  51. stage('Fin du Pipeline') {
  52. sh 'echo "Félicitation tout s\'est bien déroulé!"'
  53. }
  54. }