Usando um pipeline declarativo ou com script em DevOps

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 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 um Jenkins e é submetido a check-in no controle de código-fonte.

    Cada fase de nível raiz configurada no Jenkinsfile é descoberta como uma tarefa de orquestração separada em DevOps mapeado para uma etapa individual.

    Nota:
    . Rastrear o campo do pipeline deve ser definido como Verdadeiro em DevOps para 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 Jenkinsfile comandos

    • SnDevOpsChange(ignoreErrors:

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

      Onde ChangeRequestDetails especifica campos código de fechamento e solicitação de mudança de dentro do pipeline

      Habilita o controle de mudanças para cada fase de nível raiz mapeada para um DevOps etapa.

    • SnDevOpsArtefato

      Registra artefatos ao configurar Artefatos e pacotes.

    • SnDevOpsPackage

      Cria um pacote para artefatos ao configurar Artefatos e pacotes.

    • 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.

    • SnDevOpsResultSecurityResult

      Configura verificações de segurança em qualquer fase do pipeline e os detalhes da verificação são recuperados da fase correspondente à Velocidade de mudança do DevOps.

    Você pode especificar Jenkins configuração do servidor em qualquer uma dessas etapas aprovando ConfigurationName 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 Ignorar erros de DevOps da ServiceNow a opção é selecionada durante a configuração do Jenkins plug-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

    Você pode usar Jenkins Utilitário Gerador 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.
    • SnDevOpsArtefato
    • SnDevOpsChange
    • SnDevOpsPackage
    • SnDevOpsGetChangeNumber
    • SnDevOpsUpdateChangeInfo
    • SnDevOpsResultSecurityResult
    Para gerar um snippet de etapa, navegue até Sintaxe de pipeline Em um pipeline configurado, 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 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 paralelo e subfase

    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ário), 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 à fase de nível raiz primária (não à fase aninhada)

    Subfase

    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

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