GitHub ações de pipeline

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 5 min. de leitura
  • Use essas ações no pipeline GitHub 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] na Base de conhecimento do Now Support.

    GitHub pipelines com script e declarativos são compatíveis.

    As ações ServiceNow DevOps Config Validate (servicenow-devops-config-validate) e DevOps Config Export (servicenow-devops-config-export) GitHub são fornecidas para criar uma definição de pipeline específica.

    Validação de configuração de DevOps (servicenow-devops-config-validate)

    Carregue e valide dados de configuração em uma instância ServiceNow.

    Argumentos de entrada
    Argumento Descrição
    URL da instância ServiceNow URL da instância.
    devops-integration-username Configuração de DevOps nome de usuário de integração.
    devops-integration-user-password Configuração de DevOps senha do usuário de integração.
    application-name Configuração de DevOps nome da aplicação.
    target Destino do modelo de dados em que os arquivos de configuração são carregados.
    Exemplos de metas de modelo de dados são:
    • componente
    • collection
    • implantável
    implantável-nome Nome do implantável no modelo de dados Configuração de DevOps.
    nome-da-coleção (Opcional) Nome da coleção no modelo de dados. Obrigatório quando o destino é uma coleção.
    nome-caminho (Opcional) Caminho do nome do nó no modelo de dados em que os arquivos de configuração são carregados.
    config-file-path Caminho de arquivo ao carregar um único arquivo ou padrão de caminho de arquivo com base no padrão de estilo Ant ao carregar vários arquivos para o modelo de dados. Consulte Tarefas baseadas em diretório para obter informações sobre padrões de estilo Ant na documentação do manual Apache Ant.1.10.14.
    formato de dados Formato de dados dos arquivos de configuração.
    Exemplos de formatos de dados são:
    • CSV
    • INI
    • JSON
    • Propriedades
    • BRUTO
    • XML
    • YAML
    atributo-formato-dados (Opcional) Atributos de formato de dados estendidos para analisar dados de configuração.
    confirmação automática Entrada booliana (verdadeira ou falsa) para confirmar dados de configuração após o carregamento bem-sucedido.

    Valor padrão: verdadeiro

    validação automática Entrada booliana (verdadeira ou falsa) para validar dados de configuração após uma confirmação bem-sucedida.

    Valor padrão: verdadeiro

    publicação automática Entrada booliana (verdadeira ou falsa) para publicar dados de configuração após a validação bem-sucedida.

    Valor padrão: verdadeiro

    changeset (Opcional) Abra o changeset associado à ação de upload. Se não for fornecido, um novo changeset será criado.
    snapshot-validação-tempo limite (Opcional) Tempo máximo em minutos para a validação ser concluída antes de ocorrer falha na ação.

    Valor padrão: 60

    terminar-em-falhas-de-validação-de-política (Opcional) Entrada booliana (verdadeira ou falsa) para encerrar o fluxo de trabalho GitHub após falhas de validação de política.

    Valor padrão: falso

    Saídas
    changeset-number

    Número do changeset associado à ação de upload.

    snapshot-name

    Nome do snapshot mais recente do implantável.

    validação-status

    Status de validação do snapshot. Exemplo: passou, passou_com_exceção, falhou, execution_error, not_validated

    resultados-de-validação

    A validação resulta no formato JSON para o snapshot.

    Exemplo — Carregando arquivos de configuração para um implantável
    upload_and_validate_job:
        name: Upload and validate
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:     
          - name: ServiceNow Devops Config Validate
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: deployable
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/k8s/helm/*.yml
              data-format: yaml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    Exemplo — Carregamento de arquivos de configuração para uma coleção
    upload_and_validate_job:
        name: Upload and validate
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:     
          - name: ServiceNow Devops Config Validate
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: collection
              deployable-name: Production
              collection-name: release-1.0
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/k8s/helm/*.yml
              data-format: yaml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    Exemplo — Carregando arquivos de configuração para um componente
    upload_and_validate_job:
        name: Upload and validate
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:     
          - name: ServiceNow Devops Config Validate
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: component
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/k8s/helm/*.yml
              data-format: yaml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    Exemplo — Carregamento de vários arquivos de configuração em uma única confirmação
    upload_and_validate_job:
        name: Upload and validate
        
        needs: <upstream job>
        runs-on: ubuntu-latest
        # Upload an XML file to a component
        steps:     
          - name: ServiceNow Devops Config Validate
            id: upload_and_validate_xml
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: component
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: false
              auto-validate: true
              auto-publish: true
              config-file-path: data/infra/v1/*.xml
              data-format: xml
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
    
        # Upload a JSON file to the vars folder of a deployable
        steps:     
          - name: ServiceNow Devops Config Validate
            id: upload_and_validate_json
            uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
            with:
              instance-url: ${{ secrets.SN_INSTANCE_URL }}
              devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
              devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
              application-name: PaymentDemo
              target: component
              deployable-name: Production
              name-path: web-api-v1.0
              auto-commit: true
              auto-validate: true
              auto-publish: true
              config-file-path: data/infra/prod/*.json
              data-format: json
              snapshot-validation-timeout: 60
              terminate-on-policy-validation-failures: true
              changeset : ${{ steps.upload_and_validate_xml.outputs.changeset-number }}

    Exportação de configuração de DevOps (servicenow-devops-config-export)

    Exporte dados de configuração usando ServiceNow Configuração de DevOps.

    Argumentos de entrada
    Argumento Descrição
    URL da instância ServiceNow URL da instância.
    devops-integration-username Configuração de DevOps nome de usuário de integração.
    devops-integration-user-password Configuração de DevOps senha do usuário de integração.
    application-name Configuração de DevOps nome da aplicação.
    implantável-nome Nome do implantável no modelo de dados Configuração de DevOps.
    nome-do-exportador Nome do exportador que exporta dados de configuração do modelo de dados Configuração de DevOps.
    snapshot-name (Opcional) Snapshot do qual os dados serão exportados. Se um snapshot não for especificado, o snapshot mais recente do implantável será usado.
    formato-dados-exportador (Opcional) Formate para exportar os dados do snapshot.
    Exemplos de formatos de dados são:
    • CSV
    • INI
    • JSON
    • Propriedades
    • BRUTO
    • XML
    • YAML
    argumentos-exportador (Opcional) Argumentos a serem usados junto com o exportador. O valor deve ser um objeto JSON representado como uma cadeia de caracteres.
    Saída
    conteúdo-exportador

    Dados de configuração que o exportador exporta.

    Exemplo — Exportar snapshot específico
    export:
        name: Export config
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:
        - name: ServiceNow DevOps Config Export
          uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
          with:
            instance-url: ${{ secrets.SN_INSTANCE_URL }}
            devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
            devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
            application-name: PaymentDemo
            deployable-name: Production
            exporter-name: returnDataforNodeName-now
            snapshot-name: Production-v1.dpl
            exporter-arguments: '{ "nodeName": "node1" }'
    Exemplo — Exporte o snapshot implantado mais recente com parâmetros adicionais
    export:
        name: Export config
        needs: <upstream job>
        runs-on: ubuntu-latest
        steps:
        - name: ServiceNow DevOps Config Export
          uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
          with:
            instance-url: ${{ secrets.SN_INSTANCE_URL }}
            devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
            devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
            application-name: PaymentDemo
            deployable-name: Production
            exporter-name: returnDataforNodeName-now
            exporter-arguments: '{ "nodeName": "node1" }'
            exporter-data-format: XML