Jenkinsfile 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. {
  10. deleteDir()
  11. checkout scm
  12. }
  13. stage('Stop Containers')
  14. {
  15. sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
  16. sh 'docker system prune -f'
  17. }
  18. // stage("Push preprod images to nexus")
  19. // {
  20. // docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21')
  21. // {
  22. // imageApache.push('latest')
  23. // imageExpress.push('latest')
  24. // }
  25. // }
  26. stage('Push Docker images to Nexus') {
  27. environment {
  28. NEXUS_URL = 'https://nexus.foodgame.fr'
  29. NEXUS_CREDENTIAL_ID = 'nexus'
  30. NEXUS_USERNAME = 'admin'
  31. NEXUS_PASSWORD = 'azerty10'
  32. DOCKER_IMAGE_NAME = 'workflow_jenkins_1'
  33. DOCKER_IMAGE_TAG = 'lastest'
  34. }
  35. steps {
  36. script {
  37. withCredentials([usernamePassword(credentialsId: NEXUS_CREDENTIAL_ID, usernameVariable: 'NEXUS_USERNAME', passwordVariable: 'NEXUS_PASSWORD')]) {
  38. def dockerImage = "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}"
  39. def dockerRegistryUrl = "${NEXUS_URL}/repository/${DOCKER_IMAGE_NAME}/"
  40. // Build Docker image
  41. sh "docker build -t ${dockerImage} ."
  42. // Tag Docker image for Nexus repository
  43. sh "docker tag ${dockerImage} ${dockerRegistryUrl}${dockerImage}"
  44. // Login to Nexus Docker registry
  45. sh "docker login -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWORD} ${NEXUS_URL}"
  46. // Push Docker image to Nexus repository
  47. sh "docker push ${dockerRegistryUrl}${dockerImage}"
  48. }
  49. }
  50. }
  51. }
  52. stage('Build Docker MEAN Stack(PreProduction Deployment)')
  53. {
  54. sh 'docker-compose -v'
  55. sh 'docker-compose stop'
  56. sh 'docker-compose build'
  57. sh 'docker-compose up -d'
  58. }
  59. stage('Fin du Pipeline')
  60. {
  61. sh 'echo "Félicitation tout s\'est bien déroulé!"'
  62. }
  63. }