---
sourceDocument: Gestion des services IT Australie
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/it-service-management

 Release :

    - australia

ft:locale :

    - fr-FR

ft:publication_title :

    - Gestion des services IT Australie

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Utiliser un pipeline déclaratif ou scripté dans DevOps

# Utiliser un pipeline déclaratif ou scripté dans DevOps {#ariaid-title1}

* Rversion finale: Australia
* 
* Mis à jour 12 mars 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 minutes de lecture

Lorsque vous utilisez un fichier Jenkinsfile, les étapes sont créées, mappées et associées aux tâches d'orchestration automatiquement plutôt que manuellement.

Jenkinsfile est un fichier texte qui contient la définition d'un pipeline Jenkins et qui est archivé dans le contrôle de source.

Chaque étape de niveau racine configurée dans Jenkinsfile est détectée en tant que tâche d'orchestration distincte dans DevOps qui est mappée sur une étape individuelle.  
Remarque :  
Le champ Suivre du pipeline doit être défini sur True dans DevOps pour recevoir des notifications de tâches de la part de Jenkins. Toutes les configurations Jenkins actives reçoivent des notifications de tâche lorsque ce champ est défini sur True.

## Commandes DevOps Jenkinsfile {#dev-ops-scripted-pipeline__section_ccb_2yn_r3b}

* snDevOpsChange(ignoreErrors:{true/false},changeRequestDetails:{setCloseCode:{true/false},attributes:})

  Où ignoreErrors spécifie le paramètre permettant d'empêcher l'échec de la tâche en cas d'erreur (true/false)

  Où changeRequestDetails spécifie le [code de fermeture et les champs de demande de changement](https://servicenow-prod.fluidtopics.net/24cG~sHNCJorjNyqHdFeVA "Configurez la façon dont les champs Informations sur la fermeture, État du changement et Demande de changement sont mis à jour à partir d'un pipeline dans l'étape de changement du pipeline.") du pipeline

  Active le contrôle du changement pour chaque étape de niveau racine mappée sur une étape DevOps.
* snDevOpsArtifact

  Enregistre les artefacts lors de la configuration de [Artefacts et packages](https://servicenow-prod.fluidtopics.net/ODZLqMSPKG6d0w1_dQY3Ig "Les artefacts et les packages permettent à Vélocité de changement DevOps de suivre les activités de développement et de test sur un large éventail de modèles de déploiement et de mise en production. Cette fonctionnalité garantit la récupération et l'application de l'activité du pipeline stockée dans le modèle de données DevOps lorsque les artefacts sont créés et publiés à différents moments ou dans différents pipelines.").
* snDevOpsPackage

  Crée un package pour les artefacts lors de la configuration de [Artefacts et packages](https://servicenow-prod.fluidtopics.net/ODZLqMSPKG6d0w1_dQY3Ig "Les artefacts et les packages permettent à Vélocité de changement DevOps de suivre les activités de développement et de test sur un large éventail de modèles de déploiement et de mise en production. Cette fonctionnalité garantit la récupération et l'application de l'activité du pipeline stockée dans le modèle de données DevOps lorsque les artefacts sont créés et publiés à différents moments ou dans différents pipelines.").
* snDevOpsGetChangeNumber

  Récupère le numéro de demande de changement dans un pipeline Jenkins en fonction des détails d'un changement spécifique.
* snDevOpsUpdateChangeInfo

  Met à jour les détails de la demande de changement associés à un pipeline Jenkins.
* snDevOpsSecurityResult

  Configure les analyses de sécurité à n'importe quelle étape du pipeline, et les détails de l'analyse sont extraits de l'étape correspondante et envoyés à Vélocité de changement DevOps.
{#dev-ops-scripted-pipeline__ul_kbx_py3_r3b}

Vous pouvez spécifier la configuration du serveur Jenkins au cours de l'une de ces étapes en transmettant l'attribut configurationName dans votre pipeline. Si le nom de la configuration n'est spécifié dans aucune étape, la configuration par défaut est utilisée dans cette étape. La transmission d'un nom de configuration incorrect entraîne l'échec de l'étape, sauf si l'option Ignorer les erreurs ServiceNow DevOps est sélectionnée lors de la configuration du module d'extension Jenkins.  
Remarque :  
Le mappage d'étapes n'est pris en charge que pour les étapes de niveau racine, et non pour les étapes imbriquées ou parallèles.

## Générateur d'extraits Jenkins pour DevOps {#dev-ops-scripted-pipeline__section_vcx_kgw_f5b}

Vous pouvez utiliser l'utilitaire Générateur d'extraits Jenkins pour générer un code de modèle pour les tâches d'orchestration des pipelines scriptés. Vous pouvez utiliser l'utilitaire Générateur d'extraits pour créer un modèle pour les tâches d'orchestration suivantes.

* SnDevOpsArtifact
* SnDevOpsChange
* SnDevOpsPackage
* snDevOpsGetChangeNumber
* snDevOpsUpdateChangeInfo
* snDevOpsSecurityResult

{#dev-ops-scripted-pipeline__ul_i1g_fjw_f5b}Pour générer un extrait d'étape, accédez à la syntaxe du pipeline à partir d'un pipeline configuré, sélectionnez l'étape dans la liste Exemple d'étape, puis mettez à jour les valeurs des différentes variables de l'étape. Sélectionnez l'option Ignorer l'erreur pour empêcher l'échec de la tâche en cas d'erreur. Sélectionnez Générer un script de pipeline pour créer un extrait. Vous pouvez copier-coller l'extrait dans un pipeline.  
Exemple de script de pipeline pour la tâche SnDevOpsChange :

    snDevOpsChange changeCreationTimeOut: 3600, changeRequestDetails: '{ "attributes": { "short_description": "Test description", "priority": "1", "start_date": "2021-02-05 08:00:00", "end_date": "2022-04-05 08:00:00", "justification": "test justification", "description": "test description", "cab_required": true, "comments": "This update for work notes is from jenkins file", "work_notes": "test work notes", "assignment_group": "a715cd759f2002002920bde8132e7018" }, "setCloseCode": false, "autoCloseChange": true }', changeStepTimeOut: 18000, configurationName: 'Jenkins1', pollingInterval: 60

## Prise en charge d'étapes parallèles et de sous-étapes {#dev-ops-scripted-pipeline__section_yyr_gvy_jjb}

Lorsqu'une étape (ou un ensemble d'étapes parallèles) est imbriquée dans une étape de pipeline, les règles suivantes s'appliquent :  
* Toute action de l'étape imbriquée est traitée dans le cadre de l'étape de niveau racine parent
* Une seule demande de changement est créée (au niveau racine parent), même si plusieurs étapes imbriquées sous l'étape de niveau racine parent déclenchent un changement
* Les tâches d'orchestration créées sont toujours associées à l'étape de niveau racine parent (et non à l'étape imbriquée)
{#dev-ops-scripted-pipeline__ul_yb1_5xy_jjb}  

## Sous-étape {#dev-ops-scripted-pipeline__example_vxg_yty_2bc}

Dans cet exemple de sous-étape, si une demande de changement est créée à partir de la sous-étape (déploiement en production), les détails de l'étape de niveau racine parent (déployer) sont utilisés dans la demande de changement, et les tâches d'orchestration sont également associées à l'étape de niveau racine parent (déployer).  


    stage("deploy") {
             stages{
                 stage('deploy UAT') {
                    when{
                       branch 'dev'
                    }
                stage('deploy PROD') {
                   when {
                      branch 'master'
                   }
                    steps{
                      
                      snDevOpsChange()              
                    }
                }
            }

## Étape parallèle {#dev-ops-scripted-pipeline__example_wxg_yty_2bc}

Dans cet exemple d'étape parallèle, si une demande de changement est créée à partir d'une sous-étape (test UAT 1 et/ou test de code statique UAT), seule la première demande de changement est créée (à l'aide des détails de l'étape de niveau racine parent, test UAT), que les deux sous-étapes (test UAT 1 et test de code statique UAT) soient déclenchées ou non.

Rien n'indique l'étape parallèle à l'origine du changement, et les tâches d'orchestration sont associées à l'étape de niveau racine parent (test UAT).  


    stage('UAT test') {
          parallel {
              stage('UAT test-1') {
                  steps {
                      snDevOpsChange()
                      // 'UAT test-1' tasks
                  }
                    post {
                      success {
                        // post success tasks. E.g.: junit '**/target/surefire-reports/*.xml'
                      }
                  }
              }
              stage('UAT static code test') {
                  steps {
                      snDevOpsChange()
                      // 'UAT static code test' tasks
                  }
              }
          }
     }


