Étapes imbriquées et parallèles dans les pipelines Jenkins

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 3 minutes de lecture
  • Utilisez des étapes imbriquées et parallèles dans les pipelines Jenkins scriptés pour accélérer l'exécution de votre pipeline. Les demandes de changement sont créées pour les étapes imbriquées et parallèles, et pas seulement pour l'étape parente.

    Prise en charge des étapes imbriquées et parallèles dans les pipelines Jenkins

    Vous pouvez utiliser des étapes imbriquées et parallèles dans les pipelines Jenkins scriptés pour automatiser et accélérer les tâches qui peuvent être exécutées en parallèle. Par exemple, vous disposez d'un pipeline Jenkins scripté avec des étapes imbriquées et parallèles pour divers scénarios de tests, notamment différents contrôles qualité pour différents systèmes d'exploitation et navigateurs.

    ServiceNow DevOps prend en charge le traitement des étapes parallèles et imbriquées dans les pipelines Jenkins et affiche le pipeline dans l'interface utilisateur de pipeline DevOps. En effet, l'interface utilisateur de pipeline ServiceNow DevOps affiche ou réplique l'interface utilisateur de pipeline Jenkins en temps réel. Dans la vue Exécution de pipeline du pipeline concerné, cliquez sur le lien connexe Interface utilisateur de pipeline pour afficher l'état en temps réel du pipeline tel qu'il apparaît dans Jenkins. Les détails de l'artefact associé provenant du pipeline de version, des résultats des tests, des résultats du résumé de la qualité logicielle et des détails de la demande de changement s'affichent sur l'interface utilisateur de pipeline.
    Important :
    La prise en charge des étapes parallèles et imbriquées est limitée aux pipelines scriptés dans Jenkins. Les pipelines Freestyle continuent d'apparaître de manière séquentielle ou en série dans l'interface utilisateur de pipeline DevOps, même si les étapes parallèles et imbriquées font partie des pipelines Freestyle dans Jenkins.
    Figure 1. Pipeline Jenkins avec des étapes imbriquées ou parallèles
    Pipeline Jenkins avec des étapes imbriquées ou parallèles
    Exemple de pipeline avec des étapes imbriquées ou parallèles
    pipeline {
        agent any
    
        stages {
            stage('Build') {
                steps { 
                    echo 'Building...'
                    // Your build steps here
                }
            }
    
            stage('Test') {
                parallel {
                    stage('Unit Tests') {
                        steps {
                            echo 'Running unit tests...'
                            // Your unit test steps here
                        }
                    }
                    stage('Integration Tests') {
                        steps {
                            echo 'Running integration tests...'
                            // Your integration test steps here
                        }
                    }
                    stage('Additional Tests') {
                        steps {
                            script {
                                parallel(
                                    'Nested Stage 1': {
                                        echo 'Running nested parallel stage 1...'
                                        // Your nested parallel stage 1 steps here
                                    },
                                    'Nested Stage 2': {
                                        echo 'Running nested parallel stage 2...'
                                        // Your nested parallel stage 2 steps here
                                    }
                                )
                            }
                        }
                    }
                }
            }
    
            stage('Deploy') {
                steps {
                    echo 'Deploying...'
                    snDevOpsChange changeRequestDetails: '{ "attributes": {"chg_model": "e55d0bfec343101035ae3f52c1d3ae49","standard_change_template"="563504cc47410200e90d87e8dee490e2"},"autoCloseChange": false}',changeStepTimeOut: 18000, pollingInterval: 60
                    // Your deploy steps here
                }
            }
        }
    }
    

    Demandes de changement dans les étapes imbriquées et parallèles

    Les demandes de changement sont créées pour toutes les étapes imbriquées et parallèles, une fois que tous les événements en amont (préalables à la demande de changement) sont reçus. Dans les versions précédentes, les étapes imbriquées ou parallèles dans les pipelines Jenkins n'étaient pas identifiées ni traitées dans ServiceNow DevOps. Seules les étapes parentes étaient identifiées et traitées de manière linéaire ou séquentielle. S'il existait des demandes de changement dans le cadre d'étapes imbriquées et parallèles, ces demandes de changement étaient ignorées et une seule demande de changement était traitée dans le cadre de l'étape parente. Lorsque vous exécutez un nouveau pipeline après la mise à niveau, de nouvelles étapes et exécutions d'étapes sont créées pour les étapes imbriquées.

    Les étapes imbriquées et parallèles n'étaient pas traitées auparavant, et les groupes d'approbation étaient mappés uniquement sur l'étape parente. Étant donné que les étapes imbriquées et parallèles sont identifiées pendant le traitement, vous devez vérifier que les groupes d'approbation pertinents sont mappés sur l'étape imbriquée ou parallèle appropriée. Si les étapes suivantes du pipeline dépendent de l'approbation de la demande de changement, l'exécution du pipeline est interrompue et reprend lorsque la demande de changement est approuvée.

    Considérations sur la mise à niveau

    Si vous utilisez déjà Jenkins avec des pipelines imbriqués et parallèles comme outil d'orchestration, tenez compte des points suivants lors de la mise à niveau.
    • Effectuez la mise à niveau en dehors des heures de pointe.
    • Assurez-vous qu'aucune exécution de pipeline n'est en cours dans ServiceNow DevOps. Si des exécutions de pipeline sont en cours de traitement, les exécutions d'étapes peuvent ne pas être créées comme prévu pour les exécutions de pipelines en cours. Réexécutez le pipeline pour créer des exécutions d'étapes appropriées.