Étapes parallèles dans les pipelines de mise en Azure DevOps production
Les étapes parallèles d’un pipeline de mise en production sont maintenant traitées simultanément et affichées dans l’interface utilisateur du DevOps pipeline en temps réel. Les conditions de pré-déploiement du système de base et les portails de mise en production vous permettent de créer des demandes de changement qui incluent des détails à partir d’étapes parallèles.
Prise en charge de l’étage parallèle du système de base pour Azure DevOps
Les organisations utilisent des étapes parallèles pour automatiser et accélérer les processus de mise en production pour les tâches qui peuvent être effectuées en parallèle. Par exemple, un pipeline de mise en production a intégré plusieurs outils de test et de qualité logicielle et a des tâches configurées pour s’exécuter en parallèle. Le fait de ne pas exécuter chaque tâche de manière séquentielle accélère considérablement l’exécution du pipeline de mise en production.
ServiceNow DevOps prend en charge le traitement des étapes parallèles dans les pipelines de mise en production et affiche les étapes dans une vue parallèle dans l’interface utilisateur du DevOps pipeline. En fait, l’interface utilisateur du DevOps pipeline réplique l’interface Azure DevOps graphique en temps réel.
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 porte de mise en production dans des conditions de pré-déploiement pour créer des demandes de changement
- Validations
- Éléments de travail
- Résumés de tests
- Résumé de la qualité logicielle
- Versions de l'artefact
Une fois que l’exécution du pipeline est terminée, traitant les étapes parallèles précédant l’étape de déploiement en production, une demande de changement est automatiquement créée et mappée à l’étape de déploiement à la production dans la vue Exécutions de pipelines. L’étape de production termine le traitement une fois la demande de changement approuvée.
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 .Azure DevOps Les détails de l’artefact associé, provenant du pipeline de version, des résultats des tests et des résultats du résumé de la qualité logicielle, s’affichent sur l’interface utilisateur du pipeline.
Séquence de création de changement pour les tâches parallèles
Les informations sur la tâche d’Azure sont reçues dans ServiceNow pendant les périodes suivantes :
- À l’achèvement d’une étape
- Lorsque l’étape de changement de registre s’exécute
Azure fournit des informations sur les tâches de manière séquentielle en fonction du temps de file d’attente des tâches, même si les tâches s’exécutent potentiellement en parallèle. Par conséquent, si l’étape de changement de registre s’exécute alors qu’une tâche parallèle mise en file d’attente précédemment reste inachevée, le système suppose que la tâche parallèle est une tâche en amont, ce qui fait que le processus de création de changement attend sa fin. Toutefois, les notifications d’achèvement d’étapes ne sont pas reçues tant que toutes les tâches, y compris la tâche de changement de registre, ne sont pas terminées.
Cela crée un scénario d’impasse dans lequel le processus de changement dans ServiceNow attend la fin de la tâche parallèle, tandis que la tâche parallèle attend la notification d’achèvement de l’étape, qui à son tour attend la fin de la tâche de changement de registre.
En raison de cette impasse, au moment où le changement est créé, la tâche de pipeline Azure a déjà échoué, ce qui entraîne l’erreur 500 dans l’API d’événement. La réexécution de la tâche résout le problème, car les tâches parallèles précédemment mises en file d’attente sont marquées comme terminées.
Considérations relatives à la mise à niveau
- La colonne Exécution en amont de la table Exécutions des tâches ne s’affiche pas pour les nouvelles installations. Les personnalisations que vous avez apportées à l’aide de la colonne Exécution en amont avant la mise à niveau ne sont pas affectées.
- Si des étapes sont exécutées en parallèle, une demande de changement ne doit pas être la première tâche d’aucune étape.
- Après la mise à niveau, les nouvelles exécutions de pipeline de mise en production traitent simultanément les étapes parallèles et affichent les étapes parallèles et les détails associés dans l’interface utilisateur du pipeline. Azure DevOps Les pipelines de mise en production qui sont déjà exécutés et stockés ServiceNow DevOps avant la mise à niveau ne sont pas affectés et continuent d’afficher les étapes parallèles (qui sont déjà exécutées et conservées) en ServiceNow DevOps série.
- Si la porte de mise en production de prédéploiement ServiceNow DevOps est activée à plusieurs étapes de démarrage dans un pipeline de mise en production avec plusieurs étapes de démarrage, cela peut entraîner plusieurs exécutions de pipeline.