---
sourceDocument: Xanadu IT Service Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Xanadu IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Jenkins ações de pipeline

# Jenkins ações de pipeline {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 15 min. de leitura

Use essas ações no pipeline Jenkins para interagir com o modelo de dados Configuração de DevOps.  
Importante:  
A partir da versão Washington DC, o Configuração de DevOps está sendo preparado para descontinuação futura. Ele ficará oculto e não será mais instalado em novas instâncias, mas continuará sendo compatível. Para obter detalhes, consulte o artigo [Deprecation Process (Processo de descontinuação) \[KB0867184\]](https://support.servicenow.com/kb_view.do?sysparm_article=KB0867184) na Base de conhecimento do Now Support.

Jenkins pipelines com script e declarativas são compatíveis.  
Essas ações são fornecidas para criar uma definição de pipeline específica para atingir seu objetivo. Adicione um comando ao arquivo Jenkins para executar essas ações.

* snDevOpsConfigAção combinada para carregar, validar e publicar dados de configuração.

* snDevOpsConfigUploadCarregar dados de configuração para Configuração de DevOps por meio do Trabalho do agente.

* snDevOpsConfigGetSnapshotsRecupere snapshots de um implantável específico ou de todos os implantáveis afetados.

* snDevOpsConfigPublishPublique um snapshot para a aplicação e o implantável fornecidos.

* snDevOpsConfigExportarExporte um snapshot para uma determinada aplicação e implantável.

* snDevOpsConfigRegisterPipelineVincule um changeset e/ou snapshot a uma execução de pipeline.

* snDevOpsConfigValidateValide os dados de configuração em relação às políticas da sua organização.

* Mudança de snDevOpsCrie uma solicitação de mudança com o snapshot associado anexado.

{#devops-config-jenkins-integration__ul_fp5_1qf_psb}

## snDevOpsConfig {#devops-config-jenkins-integration__section_iml_cxp_cyb}

Carregue, valide e publique mudanças de dados de configuração em uma só etapa.

Esta ação combina as ações snDevOpsConfigUpload, snDevOpsConfigGetSnapshots e snDevOpsConfigRegisterPipeline em uma ação, em vez de ter que executar cada ação separadamente.

Variáveis de entrada
:

    |-|-|
    | arquivo de configuração | Especifica o arquivo de dados de configuração a ser carregado no componente ou no caminho implantável no modelo de dados. |
    | applicationName | Especifica a aplicação para a qual os dados de configuração serão carregados. |
    | meta | Especifica o destino do modelo de dados para onde os dados de configuração serão carregados (por exemplo, <kbd class="ph userinput">componente</kbd>, <kbd class="ph userinput">coleção</kbd>, <kbd class="ph userinput">implantável</kbd>). |
    | collectionName | (Opcional) Nome da coleção para carregar (obrigatório se o destino for uma coleção). |
    | implantávelNome | (Opcional) Nome do implantável para carregar (necessário se o destino for implantável). |
    | namePath | Especifica o caminho do nome no modelo de dados para onde os dados de configuração serão carregados. Nota: Ao carregar para uma pasta de variáveis, você deve iniciar o caminho do nome com "vars/" para especificar o caminho da pasta de variáveis. |
    | dataFormat | Especifica o formato de dados do arquivo de configuração (por exemplo, <kbd class="ph userinput">JSON</kbd>, <kbd class="ph userinput">YAML</kbd>, <kbd class="ph userinput">XML</kbd>etc.) |
    | confirmação automática | Especifica se os dados de configuração devem ser confirmados após o upload (verdadeiro/falso). O valor padrão é verdadeiro. |
    | autoValidate | Especifica se os dados de configuração devem ser validados durante a confirmação (verdadeiro/falso). O valor padrão é verdadeiro. |
    | publicação automática | Especifica se os dados de configuração devem ser publicados após a validação (verdadeiro/falso). O valor padrão é verdadeiro. |
    | changesetNumber | (Opcional) Especifica o changeset (aberto) ao qual esta atividade de upload está associada. Se não for fornecido, um novo changeset será criado. Nota: Usado somente para vários cenários de upload. |
    | marcarCom falha | (Opcional) Falha no pipeline caso a tentativa de validação tenha falhado (devido a um problema de back-end). |
    | mostrarResultados | (Opcional) Mostre os resultados da validação no log do console de trabalho Jenkins. |
    | continuarComMais Recente | (Opcional) Especifica se o snapshot mais recente deve ser retornado pela combinação <kbd class="ph userinput">applicatioName</kbd>-<kbd class="ph userinput">deployableName</kbd>-<kbd class="ph userinput">changesetNumber</kbd> se nenhum snapshot for gerado (verdadeiro/falso). O valor padrão é falso. |
    [ ]

    {#devops-config-jenkins-integration__table_mqp_lxp_cyb}

Saída
:
    * Se for bem-sucedido, um snapshot ou conjunto de snapshots.
    * Em caso de falha, uma mensagem de falha de API/back-end será mostrada.
    {#devops-config-jenkins-integration__ul_gxy_sxh_2yb}

Exemplo
:
    * Entrada:  


          snapshotObj = snDevOpsConfig(
               applicationName: "PaymentDemo",
               configFile: "config/application/Collection/Collection2/*.json",
               target: "collection",
               collectionName: "release-1.0",
               namePath: "settings/infrastructure/database",
               dataFormat: "json",
               autoCommit: 'true',
               autoValidate: 'true',
               autoPublish: 'true',
               continueWithLatest: 'true',
               markFailed: 'true',
               showResults: 'false'
          )

          echo"*************************\n ${snapshotObj}"

    * Saída Saída
    {#devops-config-jenkins-integration__ul_hlr_2y5_2yb}

Exemplo - coleção
:   Nota:  
    Ao carregar em uma coleção, o argumento <kbd class="ph userinput">collectionName</kbd> é necessário.


        snDevOpsConfig(
             applicationName: 'PaymentDemo',
             target: 'collection',
             collectionName: 'release-1.0',
             namePath: 'web-api-v1.0',
             configFile: 'k8s/helm/*.yml',
             dataFormat: 'yaml',
             autoCommit: 'true',
             autoValidate: 'true',
             autoPublish: 'true'
        )

Exemplo - implantável
:   Nota:  
    Ao carregar em um implantável, o argumento <kbd class="ph userinput">deployableName</kbd> é necessário.


        snDevOpsConfig(
             applicationName: 'PaymentDemo',
             target: 'deployable',
             deployableName: 'Production',
             namePath: 'web-api-v1.0',
             configFile: 'k8s/helm/*.yml',
             dataFormat: 'yaml',
             autoCommit: 'true',
             autoValidate: 'true',
             autoPublish: 'true'
        )

Vários uploads em uma confirmação

:   Para carregar dados de configuração de diferentes locais ou para carregar um conjunto de dados para vários destinos (por exemplo, um componente, um implantável) rastreados como uma única confirmação para o seu modelo de dados, você pode chamar a ação <kbd class="ph userinput">snDevOpsConfigUpload</kbd> quantas vezes forem necessárias para o primeiro conjunto de carregamentos e chame a ação <kbd class="ph userinput">snDevOpsConfig</kbd> para o carregamento final.

    Veja um exemplo.  
    * No primeiro carregamento, crie uma variável (por exemplo, $changeset) e atribua o valor de retorno da etapa a ela para que possa ser reutilizada em carregamentos subsequentes​.

      Carregar 1 - Arquivo XML para o componente:


          $changeset = snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'paymentService-v1.0',
               configFile: 'infra/v1/config.xml',
               dataFormat: 'xml',
               autoCommit: 'false',
               autoValidate: 'false',
               autoPublish: 'false'
          )

    * Em uploads subsequentes (e uploads finais), use a variável como uma entrada​.

      Carregar arquivo 2 - JSON para a pasta de variáveis do implantável:


          snDevOpsConfig(
               applicationName: 'PaymentDemo',
               target: 'deployable',
               deployableName: 'Production',
               namePath: 'vars/dbSettings',
               configFile: 'infra/prod/dbConfig.json',
               dataFormat: 'json',
               changesetNumber: "${changeset}",
               autoCommit: 'false',
               autoValidate: 'false',
               autoPublish: 'false',
               continueWithLatest: 'true'
          )

    {#devops-config-jenkins-integration__ul_urp_fzh_2yb}

Carregar vários formatos de dados
:   Para carregar dados de configuração em diferentes formatos de arquivo, você pode chamar a ação <kbd class="ph userinput">snDevOpsConfig</kbd> com essas especificações.

    * Certifique-se de que o argumento <kbd class="ph userinput">configFile</kbd> esteja usando um curinga no caminho.
    * Não especifique o argumento <kbd class="ph userinput">dataFormat</kbd>.
    {#devops-config-jenkins-integration__ul_zbp_1zg_2zb}

    Veja um exemplo.

    * Digamos que temos esses arquivos de configuração.

    * Esta é a forma de carregar os arquivos de configuração usando <kbd class="ph userinput">snDevOpsConfig</kbd>.  


          snDevOpsConfig(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'paymentService-v1.0',
               configFile: 'infra/v1/*',
               autoCommit: 'true',
               autoValidate: 'true',
               autoPublish: 'true'
          )

    {#devops-config-jenkins-integration__ul_lnt_xxg_2zb}

## snDevOpsConfigUpload {#devops-config-jenkins-integration__section_f12_1lb_ypb}

Esta ação carrega um arquivo de configuração para um determinado local em um modelo de dados da aplicação.

Ele deve ser usado de forma iterativa para todos os arquivos de configuração a serem carregados no modelo de dados da aplicação durante a execução do pipeline.  
Compatível com:

* Carregar para:
  * Um componente, coleção ou implantável.
  * A pasta de variáveis (vars) de um componente, coleção ou implantável.
  {#devops-config-jenkins-integration__ul_wwn_5tk_dwb}
* Padrão Regex para entrada do arquivo de configuração.
* Capacidade de ser chamado várias vezes no mesmo pipeline.
{#devops-config-jenkins-integration__ul_bph_ysg_hvb}

Variáveis de entrada
:

    |-|-|
    | arquivo de configuração | Especifica o arquivo de dados de configuração a ser carregado no componente ou no caminho implantável no modelo de dados. |
    | applicationName | Especifica a aplicação para a qual os dados de configuração serão carregados. |
    | meta | Especifica o destino do modelo de dados para onde os dados de configuração serão carregados (por exemplo, <kbd class="ph userinput">componente</kbd>, <kbd class="ph userinput">coleção</kbd>, <kbd class="ph userinput">implantável</kbd>). |
    | collectionName | (Opcional) Nome da coleção para carregar (obrigatório se o destino for uma coleção). |
    | implantávelNome | Nome do implantável para o qual carregar (necessário se o destino for implantável). |
    | namePath | Especifica o caminho do nome no modelo de dados para onde os dados de configuração serão carregados. Nota: Ao carregar para uma pasta de variáveis, você deve iniciar o caminho do nome com "vars/" para especificar o caminho da pasta de variáveis. |
    | dataFormat | Especifica o formato de dados do arquivo de configuração (por exemplo, <kbd class="ph userinput">JSON</kbd>, <kbd class="ph userinput">YAML</kbd>, <kbd class="ph userinput">XML</kbd>etc.) |
    | convertPath | (Opcional) Especifica se a estrutura de diretórios dos arquivos de configuração deve ser preservada (em relação ao espaço) e convertida o diretório em caminhos dentro do modelo de dados. |
    | changesetNumber | (Opcional) Especifica o changeset (aberto) ao qual esta atividade de upload está associada. Se não for fornecido, um novo changeset será criado. Nota: Usado somente para vários cenários de upload. |
    | confirmação automática | Especifica se os dados de configuração devem ser confirmados após o upload (verdadeiro/falso). O valor padrão é falso. |
    | autoValidate | Especifica se os dados de configuração devem ser validados durante a confirmação (verdadeiro/falso). O valor padrão é falso. |
    [ ]

    {#devops-config-jenkins-integration__table_ct3_qqf_psb}

Variável de saída
:

    |-|-|
    | changesetNumber | (Opcional) Especifica o changeset (aberto) ao qual esta atividade de upload está associada. Se um número de changeset não for fornecido, um novo changeset será criado. |
    [ ]

    {#devops-config-jenkins-integration__table_iz5_2ng_hvb}

Exemplo
:
    * Entrada:Aqui está um exemplo da ação <kbd class="ph userinput">snDevOpsConfigUpload</kbd>. Para fins de ilustração, atribuiremos a resposta a uma variável, <kbd class="ph userinput">changeSetId</kbd>, que pode ser repetida para o log do console para cenários de depuração.


          changeSetId = snDevOpsConfigUpload(
               applicationName: "PaymentDemo",
               target: 'component',
               namePath: "web-api-v1.0",
               configFile: "k8s/helm/values.yml",
               dataFormat: "json",
               autoCommit: 'true',
               autoValidate: 'true'
          )

          echo "Changeset: $changeSetId created"

    * Saída:Além dos dados que estão sendo carregados para o nosso modelo de dados em Configuração de DevOps, a saída seria semelhante a esta (usando o plug-in Blue Ocean para visualizar a saída do console).

    {#devops-config-jenkins-integration__ul_tqb_n4l_yxb}

Exemplo - Vários uploads (componente)
:   Você pode chamar a ação de upload mais de uma vez para carregar dados de configuração em diferentes formatos de arquivo de locais diferentes, mantendo os uploads parte de um conjunto de mudanças.

    * No primeiro carregamento, nomeie a ação para que a variável de saída changesetNumber possa ser reutilizada em carregamentos subsequentes.  
      Carregamento de arquivo YAML:


          $changeset = snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'wep-api-v1.0',
               configFile: 'k8s/helm/values.yml',
               dataFormat: 'yaml',
               autoCommit: 'false',
               autoValidate: 'false'
          )

    * Em carregamentos subsequentes, faça referência à variável de saída changesetNumber do primeiro carregamento como uma variável de entrada.  
      Carregamento de 3 arquivos JSON:


          snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'wep-api-v1.0',
               configFile: 'infra/*.json',
               dataFormat: 'json',
               autoCommit: 'false',
               autoValidate: 'false',
               changesetNumber: "${changeset}"
          )

    * Na chamada final, além de fazer referência à variável de saída changesetNumber do primeiro carregamento como uma variável de entrada, defina autoCommit e autoValidate como <kbd class="ph userinput">verdadeiro</kbd>.  
      Carregamento do arquivo INI:


          snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'wep-api-v1.0',
               configFile: 'featureToggles/set1.ini',
               dataFormat: 'ini',
               autoCommit: 'true',
               autoValidate: 'true',
               changesetNumber: "${changeset}"
          )

    {#devops-config-jenkins-integration__ul_hwg_rng_hvb}

Exemplo - Vários uploads (coleção e variáveis)
:   Você pode chamar a ação de upload mais de uma vez para carregar dados de configuração em diferentes formatos de arquivo de locais diferentes, mantendo os uploads parte de um conjunto de mudanças.

    * No primeiro carregamento, crie uma variável (por exemplo, $changeset) e atribua o valor de retorno da etapa a ela para que possa ser reutilizada em carregamentos subsequentes.  
      Carregamento de arquivo XML:


          $changeset = snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'collection',
               collectionName: 'release-v1.0',
               namePath: 'v1-common-configs',
               configFile: 'infra/v1/config.xml',
               dataFormat: 'xml',
               autoCommit: 'false',
               autoValidate: 'false'
          )

    * Em carregamentos subsequentes, use a variável como uma entrada.  
      Carregamento de arquivo JSON:


          snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'deployable',
               deployableName: 'Production',
               namePath: 'vars/dbSettings',
               configFile: 'infra/prod/dbConfig.json',
               dataFormat: 'json',
               autoCommit: 'true',
               autoValidate: 'true',
               changesetNumber: "${changeset}"
          )

    {#devops-config-jenkins-integration__ul_ofk_4qm_dwb}

    Nota:  
    Para carregar em uma pasta de variáveis, uploadTarget deve ser definido como <kbd class="ph userinput">implantável</kbd>e os valores corretos devem ser definidos para deployableName e changesetNumber.

## snDevOpsConfigGetSnapshots {#devops-config-jenkins-integration__section_ics_2rf_psb}

Esta ação deve ser usada em diferentes cenários:

* Recupere todos os snapshots de todos os implantáveis afetados.Quando os arquivos de configuração forem carregados em um modelo de dados da aplicação, o sistema criará snapshots para todos os implantáveis determinados a serem afetados pelo carregamento. Seguindo o fluxo de IC, supondo que a última chamada de upload tenha a validação habilitada, a próxima etapa seria iterar a lista de snapshots e garantir que todos tenham sido aprovados na validação.

* Recupere um snapshot específico.Seguindo o fluxo de CD, um snapshot específico é recuperado para que possa ser publicado e exportado para ser consumido no downstream (por exemplo, para provisionar infraestrutura ou aplicação).

* Recupere os snapshots mais recentes de um implantável de uma aplicação caso um carregamento não gere nenhum snapshot.Um conjunto de dados de configuração está disponível para implantação em um ambiente para uma combinação aplicação-implantável-changeset quando nenhuma mudança de configuração é feita.

* Mostre os resultados da validação de política em uma execução de pipeline.Exiba os resultados de validação de política como resultados de testes na página de resultados de testes de compilação do Jenkins, incluindo conformidade com exceção, ao obter um snapshot.

{#devops-config-jenkins-integration__ul_lgc_ry2_psb}

Definições de entrada
:

    |-|-|
    | applicationName | Especifica a aplicação para carregar dados de configuração ou de onde os dados serão exportados. |
    | implantávelNome | (Opcional) Especifica o implantável da aplicação na qual obter os dados de snapshot mais recentes. |
    | changesetNumber | (Opcional) Especifica o ID do changeset para o conjunto de mudanças de configuração no qual o usuário está interessado. |
    | estáValidado | (Opcional) Especifica se devem ser retornados somente snapshots aprovados ou aprovados com exceção (verdadeiro/falso). O valor padrão é verdadeiro. |
    | continuarComMais Recente | (Opcional) Especifica se o snapshot mais recente deve ser retornado pela combinação <kbd class="ph userinput">applicatioName</kbd>-<kbd class="ph userinput">deployableName</kbd>-<kbd class="ph userinput">changesetNumber</kbd> se nenhum snapshot for gerado (verdadeiro/falso). O valor padrão é falso. |
    [ ]

    {#devops-config-jenkins-integration__table_hmn_3rf_psb}

Saída
:
    * Se for bem-sucedido, um snapshot ou conjunto de snapshots.
    * Em caso de falha, uma mensagem de falha de API/back-end será mostrada.
    {#devops-config-jenkins-integration__ul_xhh_jqg_hvb}

Exemplo
:
    * Snapshot específico (especificado):  


          $snapshots = snDevOpsConfigGetSnapshots(
               applicationName: 'PaymentDemo',
               deployableName: 'Production',
               changesetNumber: 'Chset-16',
               isValidated: 'true',
               continueWithLatest: 'true'
          )

    * Snapshot validado mais recente (retorna o snapshot mais recente da combinação de aplicação e implantável):  


          $snapshots = snDevOpsConfigGetSnapshots(
               applicationName: 'PaymentDemo',
               deployableName: 'Production',
               isValidated: 'true'
          )

    * Todos os snapshots do changeset (retorna todos os snapshots da combinação de aplicação e implantável):  


          $snapshots = snDevOpsConfigGetSnapshots(
               applicationName: 'PaymentDemo',
               changesetNumber: 'Chset-16'
          )

    * Mostre os resultados da validação de política em uma execução de pipeline.  
      1. Atribua uma variável ao caminho do arquivo que contém os resultados de validação de snapshot gerados durante a ação <kbd class="ph userinput">snDevOpsConfigGetSnapshots</kbd>.
      2. Chame a [ação JUnit](https://plugins.jenkins.io/junit/) para carregar os resultados de validação de snapshot na seção de teste de execução do pipeline.

      {#devops-config-jenkins-integration__ol_zkz_gyz_mwb}


          stage('Validate') {
              steps {
          	script {
                     changeSetResults = snDevOpsConfigGetSnapshots( ... )
                     if (!changeSetResults) {
                        echo "No snapshots were created"
                     } else {
          	       def changeSetResultsObject = readJSON text: changeSetResults

          	       changeSetResultsObject.each {
                            snapshotName = it.name
                            snapshotObject = it
          	       }
          	       // STEP 1
          		validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}.xml"
          	    }
          	}
              }
          }

          post {
              always {
                  // STEP 2
                  junit testResults: "${validationResultsPath}", skipPublishingChecks: true
              }
          }

    {#devops-config-jenkins-integration__ul_v33_4qg_hvb}

## snDevOpsConfigPublish {#devops-config-jenkins-integration__section_mpv_lrf_psb}

Esta ação publica um snapshot para a aplicação e o implantável fornecidos. A partir daqui, o snapshot pode ser consumido por meio do processo de exportação.

Definições de entrada
:

    |-|-|
    | applicationName | Especifica a aplicação da qual os dados de configuração serão publicados. |
    | implantávelNome | Especifica o implantável da aplicação da qual os dados de configuração serão publicados. |
    | snapshotName | Especifica o nome do snapshot a ser publicado. |
    [ ]

    {#devops-config-jenkins-integration__table_i4g_xrf_psb}

Saída
:
    * Se for bem-sucedido, verdadeiro.
    * Caso contrário, falso.
    {#devops-config-jenkins-integration__ul_m4r_nrg_hvb}

Exemplo
:


        snDevOpsConfigPublish(
             applicationName: 'PaymentDemo',
             deployableName: 'Production',
             snapshotName: 'Production-v23.dpl',
        )

## snDevOpsConfigExportar {#devops-config-jenkins-integration__section_i3w_ksf_psb}

Esta ação exporta um snapshot da aplicação e do implantável fornecidos.

O usuário deve especificar o exportador, os argumentos relevantes do exportador, o formato de exportação (por exemplo, YAML, JSON etc.) e o local de saída para os dados de configuração exportados.

A partir daqui, os dados de configuração podem ser usados diretamente como uma entrada para uma ferramenta de implantação ou provisionamento descendente no pipeline.

Argumentos de entrada
:

    |-|-|
    | applicationName | Especifica a aplicação da qual os dados serão exportados. |
    | implantávelNome | Especifica a configuração implantável da aplicação da qual os dados serão exportados. |
    | snapshotName | (Opcional) Especifica o snapshot do qual os dados serão exportados. Se um snapshot não for especificado, o snapshot mais recente do implantável será usado. |
    | exportName | Especifica o exportador a ser aplicado ao snapshot (por exemplo, <kbd class="ph userinput">UniqueCDIs</kbd>). |
    | exporterArgs | (Opcional) Especifica os argumentos a serem usados junto com o exportador. |
    | exportarFormato | Especifica o formato para exportar os dados do snapshot (por exemplo, <kbd class="ph userinput">INI</kbd>, <kbd class="ph userinput">YAML</kbd>, <kbd class="ph userinput">PROPS</kbd>). |
    | NomeDoArquivo | Especifica o arquivo para o qual os dados serão exportados (presume-se que esteja no espaço). Se um nome de arquivo não for especificado, uma concatenação de nome da aplicação e nome implantável (mais a extensão do arquivo) será usada por padrão. |
    [ ]

    {#devops-config-jenkins-integration__table_syy_nsf_psb}

Saída
:
    * Se for bem-sucedido, verdadeiro.
    * Caso contrário, falso.
    {#devops-config-jenkins-integration__ul_hfv_yrg_hvb}

Exemplo
:


        snDevOpsConfigExport(
             applicationName: 'PaymentDemo',
             deployableName: 'Production',
             snapshotName: 'Production-v23.dpl',
             exporterFormat: 'yaml',
             exporterName: 'returnAllData-now',
             exporterArgs: '',
             fileName: 'exported_file-Production-20220302.yml'
        )

## snDevOpsConfigRegisterPipeline {#devops-config-jenkins-integration__section_c3m_vsf_psb}

Esta ação vincula um changeset e/ou snapshot ao pipeline para que ele possa ser rastreado durante a execução do pipeline. Em Velocidade de mudança para DevOps, isso é mostrado na IU do Pipeline.

Consulte [Acelerando seu DevOps processo de mudança](https://servicenow-prod.fluidtopics.net/OEpDD6ibA72~shNR67XwuA "Habilite o recurso de aceleração de mudança de Velocidade de mudança para DevOps para a criação automática de solicitação de mudança no pipeline e use fluxos e políticas de aprovação de mudança para automatizar a aprovação sob determinadas condições.") para obter mais informações sobre o DevOps recurso de aceleração de mudança.

Argumentos de entrada
:

    |-|-|
    | applicationName | Especifica o nome da aplicação. |
    | changesetNumber | (Opcional) Especifica o changeset a ser associado à execução do pipeline. Nota: Especifique changesetNumber ou snapshotName, mas não ambos. |
    | snapshotName | (Opcional) Especifica o nome do snapshot a ser associado à execução do pipeline. Nota: Especifique changesetNumber ou snapshotName, mas não ambos. |
    [ ]

    {#devops-config-jenkins-integration__table_uql_ctf_psb}

Saída
:
    * Se for bem-sucedido, verdadeiro.
    * Caso contrário, falso.
    {#devops-config-jenkins-integration__ul_urr_psg_hvb}

Exemplo
:
    * Entrada:Aqui está um exemplo da ação <kbd class="ph userinput">snDevOpsConfigRegisterPipeline</kbd>. Para fins de ilustração, atribuiremos a resposta a uma variável, <kbd class="ph userinput">changeSetRegResult</kbd>, que pode ser repetida para o log do console para depurar cenários.


          changeSetRegResult = snDevOpsConfigRegisterPipeline(
               applicationName: "PaymentDemo",
               changesetNumber: "Chset-122"
          )

          echo "Pipeline registration result: ${changeSetRegResult}"

    * Saída:Além dos dados que estão sendo carregados para o nosso modelo de dados em Configuração de DevOps, a saída seria semelhante a esta (usando o plug-in Blue Ocean para visualizar a saída do console).

    {#devops-config-jenkins-integration__ul_cc2_knl_yxb}

## snDevOpsConfigValidate {#devops-config-jenkins-integration__section_rsc_wdj_psb}

Valide os dados de configuração em relação às políticas da sua organização.

Argumentos de entrada
:

    |-|-|
    | applicationName | Aplicação a ser validada. |
    | implantávelNome | Implantável para a aplicação validar. |
    | snapshotName | (Opcional) Nome do snapshot a ser validado. |
    | marcarCom falha | (Opcional) Falha no pipeline caso a tentativa de validação tenha falhado (devido a um problema de back-end). |
    | mostrarResultados | (Opcional) Mostre os resultados da validação no log do console de trabalho Jenkins. |
    [ ]

    {#devops-config-jenkins-integration__table_e1d_zdj_psb}

Saída
:
    * Se for bem-sucedido, não haverá saída.
    * Em caso de falha, uma mensagem de falha de API/back-end será mostrada.
    {#devops-config-jenkins-integration__ul_dcv_1pg_hvb}

Exemplo
:
    * Snapshot específico (especificado):  


          snDevOpsConfigValidate(
               applicationName: 'PaymentDemo',
               deployableName: 'Production',
               snapshotName: 'Production-v23.dpl',
          )

    * Snapshot mais recente (recupera e valida o snapshot mais recente da combinação de aplicação e implantável):  


          $changeset = snDevOpsConfigValidate(
               applicationName: 'PaymentDemo',
               deployableName: 'Production'
          )

    {#devops-config-jenkins-integration__ul_qgw_kpg_hvb}

## Mudança de snDevOps {#devops-config-jenkins-integration__section_zk1_w5x_mxb}

Crie uma solicitação de mudança e anexe um snapshot para referência.

Consulte [Acelerando seu DevOps processo de mudança](https://servicenow-prod.fluidtopics.net/OEpDD6ibA72~shNR67XwuA "Habilite o recurso de aceleração de mudança de Velocidade de mudança para DevOps para a criação automática de solicitação de mudança no pipeline e use fluxos e políticas de aprovação de mudança para automatizar a aprovação sob determinadas condições.") para obter mais informações sobre o DevOps recurso de aceleração de mudança.

Argumentos de entrada
:

    |-|-|
    | applicationName | Especifica o nome da aplicação. |
    | snapshotName | Especifica o nome do snapshot a ser associado à solicitação de mudança. |
    [ ]

    {#devops-config-jenkins-integration__table_w5k_x5x_mxb}

Exemplo
:


        snDevOpsChange(
             applicationName: 'PaymentDemo',
             snapshotName: 'Production-v23.dpl'
        )

## Exemplo de pipeline do Jenkins {#devops-config-jenkins-integration__section_m1b_gvz_mwb}


    pipeline {
        environment {
            buildArtifactsPath = "build_artifacts/${currentBuild.number}"
            validationResultsPath = ""
        }

        agent any

        stages {
            // Initialize pipeline
            stage('Initialize') {
                steps {
                    script {
                        // DevOps Config application related information
                        appName = 'PaymentDemo'
                        deployableName = 'Production'
                        componentName = "web-api-v1.0"
                        collectionName = "release-1.0"
                        // Configuration file information
                        exportFormat = 'yaml'
                        configFilePath = "k8s/helm/values.yml"
                        // Exporter related information
                        exporterName = 'returnAllData-nowPreview' 
                        exporterArgs = ''
                        // Jenkins variables declared to be used in pipeline
                        exportFileName = "${buildArtifactsPath}/export_file-${appName}-${deployableName}-${currentBuild.number}.${exportFormat}"
                        changeSetId = ""
                        snapshotName = ""
                        snapshotObject = ""
                        isSnapshotValidateionRequired = false
                        isSnapshotPublisingRequired = false
                    }
                }
            }
                
            // Validate configuration data changes
            stage('Validate') {
                parallel {
                    stage('Config') {
                        stages('Config Steps') {
                            // Upload configuration data to DevOps Config
                            stage('Upload, Validate, & Publish') {
                                steps {
                                    sh "echo uploading and auto-validating configuration file: ${configFilePath}"
                                    script {
                                        changeSetResults = snDevOpsConfig(
                                            applicationName: "${appName}",
                                            target: 'component',
                                            namePath: "${componentName}",
                                            configFile: "${configFilePath}",
                                            dataFormat: "${configFileFormat}",
                                            autoCommit: 'true',
                                            autoValidate: 'true',
                                            autoPublish: 'true',
                                            isValidated: 'true',
                                            continueWithLatest: 'true',
                                            markFailed: 'true'
                                        )

                                        echo "Snapshots generated, validated, and published: ${changeSetResults}"

                                        def changeSetResultsObject = readJSON text: changeSetResults

                                        changeSetResultsObject.each {
                                            snapshotName = it.name
                                            snapshotObject = it
                                        }

                                        validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}*.xml"
                                    }
                                }
                            }
                            // Export published snapshot to be used by downstream deployment tools
                            stage('Export') {
                                steps {
                                    script {
                                        // create build artifacts dir to store export file
                                        sh "mkdir -p ${buildArtifactsPath}"
                                        
                                        exportResponse = snDevOpsConfigExport(
                                            applicationName: "${appName}",
                                            snapshotName: "${snapshotObject.name}",
                                            deployableName: "${deployableName}",
                                            exporterFormat: "${exportFormat}",
                                            fileName: "${exportFileName}",
                                            exporterName: "${exporterName}",
                                            exporterArgs: "${exporterArgs}"
                                        )
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
            // Create change request and attach snapshot for reference
            stage('Change Management') {
                steps {
                    script {
                        // Trigger change request
                        snDevOpsChange(
                            applicationName: "${appName}",
                            snapshotName: "${snapshotName}"
                        )
                    }     
                }
            }
        }
        // NOTE: attach snapshot validation results to run (if the snapshot fails validation)
        post {
            always {
                // attach policy validation results
                junit testResults: "${validationResultsPath}", skipPublishingChecks: true
            }
        }
    }


