---
sourceDocument: Yokohama Gestão de serviços de TI
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/yokohama/it-service-management

 Release :

    - yokohama

ft:locale :

    - pt-BR

ft:publication_title :

    - Yokohama Gestão de serviços de TI

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Usando um pipeline declarativo ou com script em DevOps

# Usando um pipeline declarativo ou com script em DevOps {#ariaid-title1}

* Versão de lançamento: Yokohama
* 
* Atualizado 30 de jan. de 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 min. de leitura

Quando você usa um Jenkinsfile, as etapas são criadas, mapeadas e associadas a tarefas de orquestração automaticamente em vez de manualmente.

Jenkinsfile é um arquivo de texto que contém a definição de A. Jenkinse está em check-in no controle de origem.

Cada fase de nível raiz configurada no Jenkinsfile é descoberta como uma tarefa de orquestração separada em DevOpsque é mapeado para uma etapa individual.  
Nota:  
. Rastrear o campo do pipeline deve ser definido como Verdadeiro em DevOpspara receber notificações de trabalho de Jenkins. Todas as configurações ativas do Jenkins receberão notificações de trabalho quando este campo estiver definido como Verdadeiro .

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

* SnDevOpsChange(ignoreErrors:True/false,changeRequestDetails:SetCloseCode:(true/false),attributes:)

  Onde Erros ignorados especifica a configuração para evitar falha no trabalho se houver um erro (verdadeiro/falso)

  Onde ChangeRequestDetails especifica [campos de código de fechamento e solicitação de mudança](https://servicenow-prod.fluidtopics.net/TTxdEdjdRt1S_oyE2sUPNw "Configure como as informações de fechamento, o estado de mudança e os campos de solicitação de mudança são atualizados de dentro de um pipeline na etapa de mudança do pipeline.")de dentro do pipeline

  Habilita o controle de mudanças para cada fase de nível raiz mapeada para um DevOpsetapa.
* Artefato snDevOpsArtefato

  Registra artefatos ao configurar [Artefatos e pacotes](https://servicenow-prod.fluidtopics.net/Vo7O~fRDXp__X8ne7SM_Mg "Artefatos e pacotes habilitados Velocidade de mudança para DevOpspara rastrear atividades de desenvolvimento e teste em uma ampla variedade de modelos de implantação e versão. Este recurso garante que a atividade do pipeline seja armazenada no DevOpso modelo de dados pode ser recuperado e aplicado quando artefatos são criados e liberados em momentos diferentes ou em pipelines diferentes.").
* Pacote snDevOps

  Cria um pacote para artefatos ao configurar [Artefatos e pacotes](https://servicenow-prod.fluidtopics.net/Vo7O~fRDXp__X8ne7SM_Mg "Artefatos e pacotes habilitados Velocidade de mudança para DevOpspara rastrear atividades de desenvolvimento e teste em uma ampla variedade de modelos de implantação e versão. Este recurso garante que a atividade do pipeline seja armazenada no DevOpso modelo de dados pode ser recuperado e aplicado quando artefatos são criados e liberados em momentos diferentes ou em pipelines diferentes.").
* SnDevOpsGetChangeNumber

  Recupera o número da solicitação de mudança em um pipeline do Jenkins com base em detalhes de mudança específicos.
* SnDevOpsUpdateChangeInfo

  Atualiza os detalhes da solicitação de mudança associados a um pipeline do Jenkins.
* Resultado de segurança snDevOpsSecurity

  Configura verificações de segurança em qualquer fase do pipeline e os detalhes da verificação são recuperados da fase correspondente para Velocidade de mudança de DevOps.
{#dev-ops-scripted-pipeline__ul_kbx_py3_r3b}

Você pode especificar o. Jenkinsconfiguração do servidor em qualquer uma dessas etapas passando por NomeConfiguração atributo em seu pipeline. Se o nome da configuração não for especificado em nenhuma etapa, a configuração padrão será usada nessa etapa. Passar um nome de configuração incorreto resultará na falha da etapa, a menos que Ignore erros de DevOps da ServiceNow a opção é selecionada durante a configuração do Jenkinsplug-in.  
Nota:  
O mapeamento de fases só é compatível com fases no nível raiz, não com fases aninhadas ou paralelas.

## Jenkins gerador de snippet para DevOps {#dev-ops-scripted-pipeline__section_vcx_kgw_f5b}

Você pode usar o. JenkinsGerador de snippet para gerar um código de modelo para as tarefas de orquestração para pipelines com script. Você pode usar o utilitário gerador de snippet para criar um modelo para as seguintes tarefas de orquestração.

* Artefato SnDevOpsArtefato
* SnDevOpsChange
* SnDevOpsPackage
* SnDevOpsGetChangeNumber
* SnDevOpsUpdateChangeInfo
* Resultado de segurança snDevOpsSecurity

{#dev-ops-scripted-pipeline__ul_i1g_fjw_f5b}Para gerar um snippet de etapa, navegue até a Sintaxe de pipeline de um pipeline configurado e selecione a etapa em Etapa de amostra e atualize os valores de diferentes variáveis na etapa. Selecione ignorar erro opção para evitar falha no trabalho se houver um erro. Selecione Gerar script de pipeline para criar um snippet. Você pode copiar e colar o snippet em um pipeline.  
Exemplo de um script de pipeline para a tarefa 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

## Suporte a paralelo e subfase {#dev-ops-scripted-pipeline__section_yyr_gvy_jjb}

Quando uma fase (ou conjunto de fases paralelas) é aninhada em uma fase de pipeline, estas regras se aplicam:  
* Qualquer ação da fase aninhada é processada como parte da fase de nível raiz primária
* Apenas uma solicitação de mudança é criada (no nível raiz primária), mesmo que várias fases aninhadas na fase de nível raiz primária acionem uma mudança
* As tarefas de orquestração criadas são sempre associadas ao estágio de nível raiz primário (não ao estágio aninhado)
{#dev-ops-scripted-pipeline__ul_yb1_5xy_jjb}  

## Subfase {#dev-ops-scripted-pipeline__example_vxg_yty_2bc}

Neste exemplo de subfase, se uma solicitação de mudança for criada a partir da subfase (Implantar PROD), os detalhes da fase de nível raiz primária (implantação) serão usados na solicitação de mudança, e as tarefas de orquestração também serão associadas à fase de nível raiz primária (implantação).  


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

## Fase paralela {#dev-ops-scripted-pipeline__example_wxg_yty_2bc}

Neste exemplo de fase paralela, se uma solicitação de mudança for criada a partir de uma subfase (teste de UAT-1 e/ou teste de código estático de UAT), somente a primeira solicitação de mudança será criada (usando os detalhes da fase de nível raiz primária, teste de UAT) independentemente de ambas as subfases (teste de UAT-1 e teste de código estático de UAT) serem acionadas.

Não há indicação de qual fase paralela gerou a mudança, e as tarefas de orquestração estão associadas à fase de nível raiz primária (teste de 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
                  }
              }
          }
     }


