Jenkinsfile 2.2 KB

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