GitHub ações de pipeline
Use essas ações no pipeline GitHub para interagir com o modelo de dados Configuração de DevOps.
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:componentecollectionimplantá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:CSVINIJSONPropriedadesBRUTOXMLYAML
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:
verdadeirovalidação automática Entrada booliana (verdadeira ou falsa) para validar dados de configuração após uma confirmação bem-sucedida. Valor padrão:
verdadeiropublicação automática Entrada booliana (verdadeira ou falsa) para publicar dados de configuração após a validação bem-sucedida. Valor padrão:
verdadeirochangeset (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:
60terminar-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:CSVINIJSONPropriedadesBRUTOXMLYAML
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