Fases paralelas em Azure DevOps pipelines de versão
As fases paralelas em um pipeline de versão agora são processadas simultaneamente e exibidas na IU do pipeline DevOps em tempo real. As condições de pré-implantação do sistema base e as portas de versão permitem que você crie solicitações de mudança que incluem detalhes de fases paralelas.
Suporte de fase paralela do sistema de base para Azure DevOps
As organizações usam fases paralelas para automatizar e acelerar processos de versão para tarefas que podem ser executadas em paralelo. Por exemplo, um pipeline de versão integrou várias ferramentas de teste e qualidade de software e tem trabalhos configurados para serem executados em paralelo. Não executar cada trabalho sequencialmente acelera significativamente a execução do pipeline de versão.
ServiceNow DevOps oferece suporte ao processamento de fases paralelas em pipelines de versão e exibe as fases em uma exibição paralela na IU do pipeline DevOps. Efetivamente, a IU do pipeline DevOps replica a GUI Azure DevOps em tempo real.
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
}
}
}
}
ServiceNow® DevOps portal da versão em condições de pré-implantação para criar solicitações de mudança
- Confirmações
- Itens de trabalho
- Resumos do teste
- Resumo da qualidade do software
- Versões do Artefato
Depois que a execução do pipeline conclui o processamento das fases paralelas anteriores à fase de implantação de produção, uma solicitação de mudança é criada automaticamente e mapeada para a fase de implantação para produção na exibição Execuções de pipeline. A fase de produção conclui o processamento quando a solicitação de mudança é aprovada.
Na exibição Execução de pipeline do pipeline relevante, clique no link relacionado à IU do pipeline para exibir o estado em tempo real do pipeline conforme ele aparece em Azure DevOps. Os detalhes do artefato associado que são originados do pipeline de compilação, Resultados de testes, Resultados de resumo de qualidade de software são exibidos na IU do pipeline.
Sequência de criação de mudança para trabalhos paralelos
As informações de trabalho do Azure são recebidas na ServiceNow durante os seguintes horários:
- Após a conclusão de uma fase.
- Quando a etapa de registro-mudança é executada.
O Azure fornece informações de trabalho sequencialmente com base no tempo da fila de trabalhos, apesar dos trabalhos potencialmente em execução em paralelo. Consequentemente, se a etapa de registro de mudança for executada enquanto um trabalho paralelo enfileirado anteriormente permanecer incompleto, o sistema presumirá que o trabalho paralelo é uma tarefa ascendente, fazendo com que o processo de criação de mudança aguarde sua conclusão. No entanto, as notificações de conclusão de fase não são recebidas até que todos os trabalhos, incluindo o trabalho de registro de mudança, sejam concluídos.
Isso cria um cenário de impasse em que o processo de mudança na ServiceNow aguarda a conclusão do trabalho paralelo, enquanto o trabalho paralelo aguarda a notificação de conclusão da fase, que, por sua vez, aguarda a conclusão do trabalho de registro de mudança.
Devido a esse impasse, no momento em que a mudança é criada, o trabalho de pipeline do Azure já falhou, levando ao erro 500 na API de eventos. Executar novamente o trabalho resolve o problema, pois os trabalhos paralelos enfileirados anteriormente são marcados como concluídos.
Considerações de upgrade
- A coluna Execução ascendente na tabela Execuções de tarefas não é exibida para novas instalações. Todas as personalizações feitas usando a coluna Execução ascendente antes do upgrade não são afetadas.
- Se as fases estiverem sendo executadas em paralelo, uma solicitação de mudança não deverá ser o primeiro trabalho em nenhuma fase.
- Após o upgrade, as novas execuções do pipeline de versão processam fases paralelas simultaneamente e exibem fases paralelas e detalhes associados na IU do pipeline. Azure DevOps pipelines de versão que já estão executados e armazenados em ServiceNow DevOps antes do upgrade permanecem inalterados e continuam a exibir fases paralelas (que já estão executadas e persistentes) em ServiceNow DevOps em série.
- Se o portal da versão de pré-implantação ServiceNow DevOps estiver habilitado em mais de uma fase inicial em um pipeline de versão com várias fases iniciais, isso poderá resultar em várias execuções de pipeline.