GitHub ações de pipeline
Use essas ações em seu GitHub pipeline para interagir com Configuração de DevOps modelo de dados.
GitHub pipelines com script e declarativo são compatíveis.
. ServiceNow Validação da configuração do DevOps (ServiceNow-devops-config-validate) e Exportação da configuração do DevOps (ServiceNow-devops-config-export) GitHub As ações são fornecidas para criar uma definição de pipeline específica.
Validação da configuração do DevOps (serviceNow-devops-config-validate)
Carregue e valide dados de configuração em um ServiceNow instância.
- Argumentos de entrada
Argumento Descrição instance-url ServiceNow URL da instância. devops-integration-username Configuração de DevOps nome de usuário da integração. devops-integration-user-password Configuração de DevOps senha do usuário de integração. nome-da-aplicação Configuração de DevOps nome da aplicação. target Destino do modelo de dados em que os arquivos de configuração são carregados. Os destinos de modelo de dados de exemplo são:componentecollectionimplantável
nome-implantável Nome implantável no Configuração de DevOps modelo de dados. nome-da coleção (Opcional) Nome da coleção no modelo de dados. Necessário quando o destino é coleção. name-path (Opcional) Caminho do nome do nó no modelo de dados em que os arquivos de configuração são carregados. config-file-path Caminho do 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 no Apache Documentação manual do ANT.1.10.14. formato de dados Formato de dados dos arquivos de configuração. Os formatos de dados de exemplo são:CSVINIJSONPropriedadesBRUTOXMLYAML
data-format-attribute (Opcional) Atributos de formato de dados estendidos para analisar dados de configuração. confirmação automática Entrada booliana (verdadeiro ou falso) para confirmar dados de configuração após o carregamento bem-sucedido. Valor padrão:
verdadeirovalidação automática Entrada booliana (verdadeiro ou falso) para validar os dados de configuração após confirmação bem-sucedida. Valor padrão:
verdadeiropublicação automática Entrada booliana (verdadeiro ou falso) para publicar dados de configuração após a validação bem-sucedida. Valor padrão:
verdadeiroconjunto de mudanças (Opcional) Abrir conjunto de mudanças associado à ação de carregamento. Se não for fornecido, um novo conjunto de mudanças será criado. snapshot-validation-timeout (Opcional) Tempo máximo em minutos para a validação ser concluída antes de falhar na ação. Valor padrão:
60terminate-on-policy-validation-fails (Opcional) Entrada booliana (verdadeiro ou falso) para encerrar o. GitHub fluxo de trabalho após falhas de validação de política. Valor padrão:
falso- Saídas
- changeset-number
Número do conjunto de mudanças associado à ação de carregamento.
- snapshot-name
Nome do snapshot mais recente do implantável.
- validation-status
Status de validação do snapshot. Exemplo:
aprovado,passed_with_exception,falha,execution_error,not_validated- validation-results
Resultados da validação 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: Carregando 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- 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 do DevOps (serviceNow-devops-config-export)
Exporte dados de configuração usando ServiceNow Configuração de DevOps.
- Argumentos de entrada
Argumento Descrição instance-url ServiceNow URL da instância. devops-integration-username Configuração de DevOps nome de usuário da integração. devops-integration-user-password Configuração de DevOps senha do usuário de integração. nome-da-aplicação Configuração de DevOps nome da aplicação. nome-implantável Nome implantável no Configuração de DevOps modelo de dados. nome do exportador Nome do exportador que exporta dados de configuração do Configuração de DevOps modelo de dados. snapshot-name (Opcional) Snapshot do qual exportar dados. Se um snapshot não for especificado, o snapshot mais recente do implantável será usado. exporter-data-format (Opcional) Formato para exportar os dados do snapshot. Os formatos de dados de exemplo são:CSVINIJSONPropriedadesBRUTOXMLYAML
exporter-argumentos (Opcional) Argumentos a serem usados junto com o exportador. O valor deve ser um objeto JSON representado como uma cadeia de caracteres. - Saída
- exporter-content
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