| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- node {
- node {
- env.NODEJS_HOME = "${tool 'NodeJS'}"
- // on linux / mac
- env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
- // on windows
- //env.PATH="${env.NODEJS_HOME};${env.PATH}"
- sh 'npm --version'
- stage('checkout') {
- deleteDir()
- checkout scm
- }
-
- stage('Stop Containers') {
- stage('checkout') {
- deleteDir()
- checkout scm
- }
-
- stage('Stop Containers') {
- sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
- sh 'docker system prune -f'
- }
- stage('Build and Push Docker Image') {
- withCredentials([usernamePassword(credentialsId: 'nexus', usernameVariable: 'admin', passwordVariable: 'azerty10')]) {
- // Définition des variables
- def dockerImageName = 'workflow_jenkins_1'
- def dockerImageTag = 'latest'
- def nexusUrl = 'https://nexus.foodgame.fr'
- def nexusRepository = 'fatboar_repo'
- // Étape de connexion au registre Docker Nexus
- sh "docker login -u ${admin} -p ${azerty10} ${nexusUrl}"
- // Étape de balisage de l'image Docker pour le registre Nexus
- sh "docker tag ${dockerImageName}:${dockerImageTag} ${nexusUrl}/repository/${nexusRepository}/${dockerImageName}:${dockerImageTag}"
- // Étape de poussée de l'image Docker vers le registre Nexus
- sh "docker push ${nexusUrl}/repository/${nexusRepository}/${dockerImageName}:${dockerImageTag}"
- }
- }
-
- stage('Build Docker MEAN Stack(PreProduction Deployment)') {
- sh 'docker-compose -v'
- sh 'docker-compose stop'
- sh 'docker-compose build'
- sh 'docker-compose up -d'
- }
- stage('Fin du Pipeline') {
- sh 'echo "Félicitation tout s\'est bien déroulé!"'
- }
- }
|