Blog using-jenkins
devopsMARCH 18, 2024

Jenkins : Notes de pipelines avec l'outil de CI/CD le plus populaire

kraaakilo's avatar

Jenkins

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 :

Étape 1 : Installation de Jenkins

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.

Étape 2 : Configuration d'un projet

  1. Accédez à l'interface web de Jenkins dans votre navigateur.
  2. Cliquez sur "Nouvel item" pour créer un nouveau projet.

Étape 3 : Configuration du pipeline

  1. Sélectionnez le type de projet "Pipeline" lors de la création.
  2. Dans la section "Pipeline", vous pouvez définir votre pipeline à l'aide d'un script pipeline (syntaxe Declarative ou Scripted). Voici un exemple simple de script Declarative :
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.

Étape 4 : Exécution du pipeline

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.

Exemple complet

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.

Pour exemple voici la pipeline de ce blog

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
				}
			}
		}
	}
}

Let's connect

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!