Fases aninhadas e paralelas em Jenkins pipelines

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • Use fases aninhadas e paralelas no script Jenkins pipelines para acelerar a execução do pipeline. As solicitações de mudança são criadas para fases aninhadas e paralelas e não apenas para a fase primária.

    Suporte para fases aninhadas e paralelas em Jenkins pipelines

    Você pode usar fases aninhadas e paralelas em script Jenkins pipelines para automatizar e acelerar tarefas que podem ser executadas em paralelo. Por exemplo, você tem um script Jenkins pipeline com fases aninhadas e paralelas para vários casos de teste, como diferentes verificações de qualidade para diferentes sistemas operacionais e navegadores.

    ServiceNow DevOps o oferece suporte ao processamento de fases paralelas e aninhadas no Jenkins pipelines e exibe o pipeline, no DevOps IU do pipeline. Na verdade, o. ServiceNow DevOps A IU do pipeline renderiza ou replica o. Jenkins IU do pipeline em tempo real. Em Execução de pipeline exibição do pipeline relevante, clique em IU do pipeline link relacionado para exibir o estado em tempo real do pipeline conforme ele aparece Jenkins. Os detalhes do artefato associado que são originados do pipeline de compilação, Resultados de teste, Resultados de resumo de qualidade de software e detalhes da solicitação de mudança são exibidos na IU do pipeline.
    Importante:
    O suporte para fases paralelas e aninhadas é restrito a pipelines com script no Jenkins. Os pipelines Freestyle continuam a aparecer de maneira sequencial ou serial no DevOps IU do pipeline, mesmo que as fases paralelas e aninhadas façam parte dos pipelines de estilo livre no Jenkins.
    Figura 1. Pipeline do Jenkins com fases aninhadas ou paralelas
    Pipeline do Jenkins com fases aninhadas ou paralelas
    Pipeline de amostra com fases aninhadas ou paralelas
    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
                }
            }
        }
    }
    

    Solicitações de mudança em fases aninhadas e paralelas

    As solicitações de mudança são criadas para todas as fases aninhadas e paralelas, depois que todos os eventos ascendentes (antes da solicitação de mudança) são recebidos. Em versões anteriores, fases aninhadas ou paralelas em Jenkins pipelines não foram identificados nem processados em ServiceNow DevOps. Apenas as fases primárias foram identificadas e processadas de maneira linear ou sequencial. Se as solicitações de mudança existissem como parte de qualquer fase aninhada e paralela, essas solicitações de mudança seriam ignoradas e uma única solicitação de mudança era processada como parte da fase primária. Quando você executa um novo pipeline após o upgrade, novas etapas e execuções de etapas são criadas para fases aninhadas.

    As fases aninhadas e paralelas não foram processadas anteriormente e os grupos de aprovação foram mapeados somente para a fase primária. Como as fases aninhadas e paralelas são identificadas durante o processamento, você deve verificar se os grupos de aprovação relevantes estão mapeados para a fase aninhada ou paralela apropriada. Se as etapas subsequentes do pipeline dependerem da aprovação da solicitação de mudança, a execução do pipeline será pausada, e retomado quando a solicitação de mudança é aprovada.

    Considerações de upgrade

    Se você já estiver usando Jenkins com pipelines aninhados e paralelos como sua ferramenta de orquestração, considere o seguinte ao fazer o upgrade.
    • Faça upgrade fora dos horários de pico.
    • Certifique-se de que você não tenha nenhuma execução de pipeline que esteja em andamento no momento ServiceNow DevOps. Se as execuções de pipeline estiverem sendo processadas, as execuções de etapa poderão não ser criadas conforme o esperado para as execuções de pipeline em andamento. Execute novamente o pipeline para criar execuções de etapa apropriadas.