Jenkins est un outil open source populaire utilisé pour l'automatisation des processus de construction, de déploiement et de gestion de projets logiciels. Les "stages" dans Jenkins sont des étapes spécifiques dans le pipeline de déploiement, où chaque étape représente une tâche distincte à effectuer dans le processus d'intégration continue et de déploiement continu (CI/CD).
Voici une explication générale de la configuration d'un stage Jenkins avec un exemple simple :
Assurez-vous d'avoir Jenkins installé sur votre serveur. Vous pouvez le télécharger à partir du site officiel de Jenkins (https://www.jenkins.io/download/) et suivre les instructions d'installation.
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Construction du projet ici...'
// Ajoutez les commandes pour construire votre projet
}
}
stage('Test') {
steps {
echo 'Exécution des tests...'
// Ajoutez les commandes pour exécuter vos tests
}
}
stage('Deploy') {
steps {
echo 'Déploiement du projet...'
// Ajoutez les commandes pour déployer votre projet
}
}
}
}
Dans cet exemple, le pipeline a trois étapes : Build, Test et Deploy.
Après avoir configuré votre pipeline, enregistrez les modifications et exécutez le pipeline manuellement ou configurez-le pour qu'il soit déclenché automatiquement à chaque changement de code.
Voici un exemple de pipeline Jenkins pour un projet fictif utilisant Maven comme outil de construction :
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Construction du projet avec Maven...'
sh 'mvn clean install'
}
}
stage('Test') {
steps {
echo 'Exécution des tests avec Maven...'
sh 'mvn test'
}
}
stage('Deploy') {
steps {
echo 'Déploiement du projet...'
// Ajoutez les commandes pour déployer votre projet (par exemple, copier les fichiers sur un serveur)
}
}
}
}
Ce script assume que Maven est installé sur votre serveur Jenkins. Vous pouvez adapter ces étapes en fonction des outils et des commandes spécifiques à votre projet.
pipeline{
agent any
tools {
nodejs 'node21'
}
stages {
stage ('Fetch Code'){
steps {
git credentialsId: 'GithubPAT', url: 'https://github.com/kraaakilo/portfolio.git', branch: 'master'
}
}
stage ('Install dependencies'){
steps {
sh 'npm install'
}
}
stage('Build Code'){
steps {
sh 'npm run build'
}
}
stage ('Code Analysis'){
environment{
SONAR_HOME = tool 'sonar4.7'
}
tools {
jdk 'jdk8'
}
steps{
withSonarQubeEnv('sonarqube'){
sh '''
${SONAR_HOME}/bin/sonar-scanner -Dsonar.projectKey=portfolio \
-Dsonar.projectName=portfolio \
-Dsonar.projectVersion=1.0 \
-Dsonar.sources=./
'''
}
}
}
stage('Quality Gate'){
steps{
timeout(time: 1, unit: 'HOURS') {
waitForQualityGate abortPipeline: true
}
}
}
}
}
Stay in the loop with my latest projects and insights! Follow me on Twitter to catch all the updates as they happen. Don't miss out on the journey – let's connect and explore the world of tech together. Click to follow now!