-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
80 lines (68 loc) · 2.78 KB
/
Jenkinsfile
File metadata and controls
80 lines (68 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
pipeline{
// Exécute le pipeline sur n'importe quel agent
agent any
// Déclarer les variables d'environnement globales
environment {
// votre username Docker Hub
DOCKER_USERNAME = "ditdevops1"
// version dynamique de l’image
IMAGE_VERSION = "1.${BUILD_NUMBER}"
// nom de l’image docker
DOCKER_IMAGE = "${DOCKER_USERNAME}/tp-app:${IMAGE_VERSION}" // tp-app : represente le nom de l'image personnalisé ; on utilse cela pour envoyer l'image locale sur dockerhub
// nom du conteneur
DOCKER_CONTAINER = "ci-cd-html-css-app"
// Identifiants Docker Hub
DOCKER_CREDENTIALS = credentials("michel") // A pour objectif de chiffrer la communication entre l'user de dockerhub et jenkins // jenkins utilise ce token pour se connecter avec
}
}
// Les étapes du pipeline
stages {
// Étape 1 : Récupération du code source depuis GitHub
stage("Checkout") {
steps {
// récupérer la branche 'main' du repository distant
git DOCKER_CREDENTIALS branch: 'main', url: 'https://github.com/Algoromo/-ci-cd-html-css-demo2'
}
}
// Étape 2 : Exécution des tests
stage("Test") {
steps {
// faire des tests
echo "Tests en cours"
}
}
// Étape 3 : Création de l'image Docker
// si vous travaillez sur windows , utliser bat et sur linux utiliser sh
stage("Build Docker Image") {
steps {
script {
// Créer l'image Docker
bat "docker build -t $DOCKER_IMAGE ." } }
}
}
// Étape 4 : Publication de l'image sur Docker Hub
stage("Push image to Docker Hub") {
steps {
script {
bat """
# Connexion à Docker Hub
docker login -u ${DOCKER_CREDENTIALS_USR} -p ${DOCKER_CREDENTIALS_PSW} // DOCKER_CREDENTIALS_USR et DOCKER_CREDENTIALS_PSW sont des variables par defaut de docker
echo 'Docker login successful'
# Push l'image sur Docker Hub
docker push $DOCKER_IMAGE
"""
}
}
}
// Déploiement de l'application
stage("Deploy") {
steps {
script {
// Lancer le conteneur
bat """
docker container stop $DOCKER_CONTAINER || true
docker run -d --name $DOCKER_CONTAINER -p 8080:80 $DOCKER_IMAGE
"""
}
}
}