AccueilAuteursContact

Jenkins pour les tests automatisés

Par Siraj ACHABBAK
Publié dans DEVOPS
February 29, 2020
1 min de lecture
Jenkins pour les tests automatisés

Jenkins c’est quoi ?

Jenkins est l’un des outils les plus populaires d’intégration continue pour toute plateforme ou technologie. C’est un outil open-source construit en Java. Il prend en charge plus de 1000 plugins pour permettre une intégration/livraison continue. Jenkins peut déclencher automatiquement une compilation après chaque modification de code dans un référentiel (github, gitlab ..). Une fois le code construit, Jenkins peut soumettre le code pour des tests afin de vérifier la stabilité ou les fonctionnalités de l’application. Une fois que tout est vérifié, il peut également déployer le code de l’application sur un serveur de production. Jenkins prend en charge des milliers de plugins pour étendre ses fonctionnalités.

enter image description here

Les jobs jenkins

Jenkins offre la possibilité de créer plusieurs types de jobs :

  • Freestyle : Les jobs Freestyle sont des jobs à usage général, qui offrent une flexibilité maximale. Il peut être utilisé pour tout type de projet.

  • Pipeline : Jenkins exécute l’ensemble du flux de développement sous forme de code. Au lieu de créer plusieurs jobs pour chaque flux (Build, Test, déployer ..), vous pouvez maintenant exécuter l’ensemble du workflow comme un code.

  • Multiconfiguration : Les jobs de type multiconfiguration vous permet d’exécuter le même job sur différents environnements.

  • Dossier : Ce type de job permet aux utilisateurs de créer des dossiers pour organiser et classer des jobs similaires dans un dossier ou sous-dossier.

  • Organisation GitHub: Ce type de job analyse toute les dépôts que vous avez sur GitHub et crée des tâches de pipeline pour chaque référentiel contenant un Jenkinsfile

  • Multibranch pipeline : il vous permet d’implémenter différents Jenkinsfiles pour différentes branches du même projet.

Qu’est-ce qu’une Pipeline jenkins?

Les pipelines Jenkins peuvent être définis à l’aide d’un fichier texte appelé JenkinsFile. Vous pouvez implémenter votre pipelineà l’aide du Groovy. Avec JenkinsFile, vous pouvez écrire les étapes nécessaires à l’exécution du pipeline (build, qualité de code, tester ..).

Les avantages des Pipeline

  • Une pipeline Jenkins est implémenté sous la forme d’un fichier nommé jenkinsFile qui permet à plusieurs utilisateurs de modifier et d’exécuter le processus de pipeline.
  • Les pipelines sont robustes,ils serony automatiquement exécutés si votre serveur subit un redémarrage imprévu.
  • Vous pouvez exécuter plusieurs Jobs et même utiliser des pipelines dans une boucle.

Exemple d’un jenkinsFile

    pipeline {  
    agent {  
        // lancer l'image docker
        docker {  
            image 'maven:3-alpine'   
            args '-v /root/.m2:/root/.m2'   
        }  
    }  
    stages {  
        stage('Build') {   
            steps {  
                sh 'mvn -B -DskipTests clean package'   
            }  
        } 
        stage('tester') {  
            steps {  
                sh 'mvn test'  
            }  
            post {  
                always {  
                    junit 'target/surefire-reports/*.xml'  
                }  
            }  
        }  
        stage('qualité de code') {  
            steps {  
                sh 'mvn clean package sonar:sonar'
            }  
        }
        stage('Déployer') {  
            steps {  
                sh './jenkins/scripts/deliver.sh'  
            }  
        }
        //envoyer un mail de notification apres le build 
        post {
            success {
              mail to: "s.achabbak@gmail.com", subject:"SUCCESS: ${currentBuild.fullDisplayName}", body: "Yay, we passed."
             }
            failure {
              mail to: "s.achabbak@gmail.com", subject:"FAILURE: ${currentBuild.fullDisplayName}", body: "Boo, we failed."
             }
           }
         }  


Tags

JenkinsCI/CDdevops
Article précédent
Gherkin pour les User Stories
Siraj ACHABBAK

Siraj ACHABBAK

Ingénieur IT

Articles Similaires

Ansible pour les DevOps : le guide essentiel pour les débutants
March 17, 2023
8 min

Liens rapides

À proposDevenir auteurContact

Social Media