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

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • Utilisez des étapes imbriquées et parallèles dans les pipelines scriptés Jenkins 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 Jenkins les pipelines

    Vous pouvez utiliser des étapes imbriquées et parallèles dans les pipelines scriptés pour automatiser et accélérer les tâches qui peuvent être exécutées Jenkins en parallèle. Par exemple, vous avez un pipeline scripté Jenkins avec des étapes imbriquées et parallèles pour divers scénarios de test tels que 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 Jenkins les pipelines et affiche le pipeline dans l’interface utilisateur du DevOps pipeline. 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 du pipeline du pipeline concerné, cliquez sur le lien connexe de l’interface utilisateur du pipeline pour afficher l’état en temps réel du pipeline tel qu’il apparaît dans .Jenkins Les détails des artefacts associés 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 du 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 sérielle dans l’interface utilisateur du DevOps pipeline, même si des é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 aux é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 (antérieurs à la demande de changement) sont reçus. Dans les versions précédentes, les étapes imbriquées ou parallèles dans Jenkins les pipelines n’étaient pas identifiées ni traitées dans ServiceNow DevOps. Seules les étapes parentes ont été identifiées et traitées de manière linéaire ou séquentielle. Si les demandes de changement existaient dans le cadre d’étapes imbriquées et parallèles, elles é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’ont pas été traitées auparavant, et les groupes d’approbation ont été mappés uniquement à 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 appropriés sont mappés à 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 suspendue et reprise lorsque la demande de changement est approuvée.

    Considérations relatives à la mise à niveau

    Si vous utilisez Jenkins déjà des pipelines imbriqués et parallèles comme outil d’orchestration, tenez compte des éléments suivants lors de la mise à niveau.
    • Mise à niveau en dehors des heures de pointe.
    • Assurez-vous qu’aucune exécution de pipeline n’est en cours d’ici ServiceNow DevOpsle . Si les 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 pipeline en cours. Réexécutez le pipeline pour créer des exécutions d’étapes appropriées.