Artefatos e pacotes
Artefatos e pacotes habilitados Velocidade de mudança para DevOps rastrear atividades de desenvolvimento e teste em uma ampla variedade de modelos de implantação e versão. Esse recurso garante que a atividade do pipeline seja armazenada no DevOps o modelo de dados pode ser recuperado e aplicado quando artefatos são criados e liberados em momentos diferentes ou em pipelines diferentes.
Artefatos
Quando uma versão de artefato é registrada, atividades relacionadas, como confirmações, testes e verificações de código, são rastreadas para que, independentemente de quando a versão do artefato for implantada, esses detalhes possam ser recuperados. Pode ser na execução do pipeline atual, uma execução posterior do mesmo pipeline, um pipeline acionado pelo atual ou um pipeline separado acionado independentemente.
Quando você associa confirmações a uma versão de artefato (pipeline de IC) e define um pacote de artefato (pipeline de CD), todas as versões de artefato geradas desde a última vez em que o app foi implantado na produção são incluídas na lista de confirmações da mudança. A consolidação desses itens é útil, especialmente quando há várias compilações de IC antes da implantação.
- Categoria DevOps ou Categorize as solicitações de mudança do DevOps no campo "Mudança do DevOps" a caixa de seleção está marcada em DevOps propriedades. Para obter mais informações, consulte DevOps solicitação de mudança sem categoria obrigatória como DevOps.
- Confirmações e listas relacionadas a itens de trabalho
Packages
- Recuperação de atividades para todas as versões de artefato declaradas no pacote. Por exemplo, para uso em uma política de aprovação de mudança automatizada.
- Gravação de quando uma versão de artefato especificada foi lançada com sucesso, garantindo que as informações vinculadas a ela não sejam mais consideradas. Por exemplo, para solicitações de mudança posteriores.
Configuração de artefato
- Crie um registro de ferramenta de artefato no DevOps .Nota:Uma ferramenta de artefato não é necessária, a menos que uma configuração de webhook ou subfluxo de integração criada pelo usuário seja necessária para pesquisar versões de artefato.
- Registre artefatos no pipeline de IC.
- Crie um pacote no pipeline de CD.Nota:A etapa de criação do pacote deve ser anterior à etapa de implantação do Prod.
Registro de artefato
Configure o registro de artefato em um pipeline com script ou trabalho de estilo livre usando DevOps API /artefato/registro endpoint. Há suporte para várias versões de artefato.
Pipeline declarativo e com script ( SnDevOpsArtefato Comando Jenkinsfile)
Por exemplo:snDevOpsArtifact(artifactsPayload: """{"artifacts": [{"name": "sa-web.jar", "version": "1.9","semanticVersion": "1.9.0","repositoryName": "services-1031"}], "branchName": "master"}""")Trabalho Freestyle ( Registrar artefato etapa de compilação)
Por exemplo:{"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","semanticVersion":"1.9.0","repositoryName":"maven-releases"}]}
Criação de pacote de artefatos
Trabalho Freestyle ( Criar pacote etapa de compilação)
Por exemplo:
{"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","repositoryName":"maven-releases"}]}Pipeline declarativo e com script ( SnDevOpsPackage Comando Jenkinsfile)
Pacote com mais de um artefato (de repositórios diferentes) na carga, por exemplo:snDevOpsPackage(name: "sentimentpackage", artifactsPayload: """{"artifacts":[{"name": "sa-web.jar", "version": "1.9", "repositoryName": "services-1031"}, "{"name": "sa-db.jar", "version": "1.3.2", "repositoryName": "services-1032"}], "branchName": "master"}""")
Jenkins etapa do plug-in IncludeBuildInfo Pode ser usado para incluir detalhes de compilação na chamada de API.
Fluxo de trabalho e objetos de artefato
O trabalho da ferramenta de Orquestração publica o novo artefato (que consiste em versões) no repositório de artefatos. Cada versão de artefato está associada a uma execução de tarefa (que consiste nas confirmações de código relacionadas). Um pacote é criado para a versão (que consiste em versões de artefato específicas sinalizadas para implantação) e, após a conclusão da fase de implantação, o pacote é marcado como implantado para produção.
Esses objetos fazem parte da estrutura do artefato.
Ferramenta de artefato
Usado para oferecer suporte a gerentes de repositório de artefatos, como JFrog Artifactory.
Nota:Uma ferramenta de artefato não é necessária, a menos que uma configuração de webhook ou subfluxo de integração criada pelo usuário seja necessária para pesquisar versões de artefato.Repositório de artefato
Destino para artefatos gerados em uma compilação e também uma origem de artefatos necessários para uma compilação. Pode ser criado manualmente ou por meio da API RegisterArtifact conforme novos artefatos são publicados em novos repositórios em uma ferramenta.
Artefato
Nome do artefato para o qual diferentes compilações (versões de artefato) são geradas. Pode ser criado manualmente ou por meio da API RegisterArtifact. Artefatos (versões) são associados a uma execução de tarefa e publicados em um repositório de artefatos.
Versão do artefato
Versão específica do artefato. Componente implantável de uma aplicação gerado por uma compilação de IC. Quando fornecida, a versão semântica é usada.
Pode ser criado por meio da descoberta ou por meio da API RegisterArtifact. Artefatos (versões) são associados a uma execução de tarefa e publicados em um repositório de artefatos rastreados.
Versão de semântica
Atributo opcional de uma versão de artefato que, quando fornecida, é usada para determinar confirmações de uma mudança. O formato da versão semântica é (MAJOR.MINOR.PATCH).
Pacote
Coleção de versões de artefato usadas como entrada para um pipeline de CD ou para associar resultados de teste.
A criação de pacote é acionada pela chamada de API CreatePackage da ferramenta de Orquestração e contém o nome, a versão e o nome do repositório de todas as versões de artefato incluídas no pacote. Uma caixa de seleção indica se o pacote foi implantado na produção.
Você também pode ver todas as solicitações de mudança de pipeline existentes diretamente do Mudanças no navegador de aplicações.
Você pode ver todas as solicitações de mudança de pipeline e controle de mudanças existentes diretamente usando Mudanças no navegador de aplicações.
Navegar até para todas as informações relacionadas à mudança.
Solicitações de mudança de pipeline
Você pode ver todos os artefatos e pacotes existentes diretamente usando Lista no navegador de aplicações.
Navegar até para todas as informações relacionadas a artefatos.
Monitoramento de artefatos e pacotes
Quando artefatos e pacotes são registrados de uma ferramenta de origem em ServiceNow muitas vezes, eles são encenados no sn_devops_artifact_staging, enquanto os dados necessários restantes para a criação e vinculação desses objetos são recebidos de eventos de entrada ou obtidos por DevOps fluxos.
Na maioria das vezes, esses registros de preparação são processados em alguns segundos. Mas pode haver casos em que os dados necessários nunca são recebidos, portanto, esses registros podem ser deixados ociosos. . Descrição o campo na tabela abaixo contém um resumo dos detalhes ausentes nesses casos para ajudar a facilitar o monitoramento.
| Tipo de fase | Código de preparação | Quando isso pode ocorrer | Estado final? | Descrição |
|---|---|---|---|---|
| create_package_association | WAITING_FOR_OTHER_STAGED_REQUESTS | Durante uma chamada de registro de pacote, quando a execução da tarefa de onde a chamada se originou é encontrada no sistema e pós-processada, mas nem todas as versões de artefato passadas na carga de artefatos foram encontradas no sistema. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Execução de tarefa encontrada para associação (TE00012345) e o sinalizador de pós-processamento está definido como verdadeiro, mas nem todas as versões de artefato foram encontradas. Contagem total de artefatos: 2 |
| create_package_association | TASK_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de pacote, quando a execução da tarefa de onde a chamada se originou é encontrada no sistema, mas ainda não foi pós-processada. Ou seja, o evento de webhook concluído para esta execução de tarefa ainda não foi processado. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Execução de tarefa encontrada para associação (TE00012345), mas o sinalizador de pós-processamento concluído não está definido como verdadeiro. Contagem total de artefatos: 2 |
| create_package_association | NO_TASK_EXECUTION_FOUND | Durante uma chamada de registro de pacote, quando a execução da tarefa de onde a chamada se originou ainda não foi encontrada no sistema. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Execução de tarefa não encontrada para associação (pipelineName: TestPipeline, stageName: Pacote, taskExecutionNumber: 18). Contagem total de artefatos: 2 |
| create_package | VERSION_NOT_FOUND | Durante uma chamada de registro de pacote, quando a versão do artefato aprovada na carga de artefatos ainda não foi encontrada no sistema. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Versão do artefato não encontrada (nome: TestArtifact, versão 2,5, repositório: TestRepo, pipelineName: TestPipeline, stageName: Pacote, taskExecutionNumber: 18). Contagem de artefatos: 1 de 2 |
| create_package | VERSION_NOT_FOUND | Durante uma chamada de registro de pacote, quando a versão do artefato não é passada na carga útil de artefatos, mas contém um taskExecutionSysId ou (pipelineName, stageName, taskExecutitionNumber) que pode ser usado para pesquisar o registro de execução da tarefa, que, nesse caso, é encontrado e pós-processado, mas não tem nenhum registro de versão de artefato associado. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Versão do artefato não disponível na carga útil e não encontrada usando os detalhes de execução da tarefa (nome TestArtifact, versão 2,5, positoryName TestRepo, pipelinePipeline, stageName Pacote, taskExecutionNumber: 18) (TE00012345). Contagem de artefatos: 1 de 2 |
| create_package | TASK_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de pacote, quando a versão do artefato não é passada na carga útil de artefatos, mas contém um taskExecutionSysId ou (pipelineName, stageName, taskExecutitionNumber) que pode ser usado para pesquisar o registro de execução da tarefa, que, nesse caso, foi encontrado, mas ainda não foi pós-processado. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Versão do artefato não disponível na carga e execução de tarefa encontrada para associação, mas o sinalizador de pós-processamento concluído não está definido como verdadeiro (nome TestArtifact, versão 2,5, repositório taskExecutionNumber: 18) (TE00012345). Contagem de artefatos: 1 de 2 |
| create_package | NO_TASK_EXECUTION_FOUND | Durante uma chamada de registro de pacote, quando a versão do artefato não é passada na carga útil de artefatos, mas contém um taskExecutionSysId ou (pipelineName, stageName, taskExecutitionNumber) que pode ser usado para pesquisar o registro de execução da tarefa, que, nesse caso, não foi encontrado. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Versão do artefato não disponível na carga e a execução da tarefa também não foi encontrada para associação (nome TestArtifact, versão 2,5, repositório taskExecutionNumber: 18). Contagem de artefatos: 1 de 2 |
| create_package | WAITING_FOR_OTHER_STAGED_REQUESTS | Durante uma chamada de registro de pacote, quando a versão do artefato aprovada na carga útil de artefatos é encontrada no sistema, mas deve aguardar o processamento dos outros registros de preparação relacionados (incluindo os registros create_package ou create_package_association). | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: Versão do artefato encontrada, mas é preciso aguardar os registros de preparação do registro de pacote restantes. Contagem de artefatos: 1 de 2 |
| register_artifact | TASK_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de artefato, quando a execução da tarefa de onde a chamada se originou é encontrada no sistema, mas ainda não foi pós-processada. Este é o evento do webhook "Concluído" para esta execução de tarefa ainda não foi processado. | Não | Sua solicitação de registro de artefato está pendente pelo seguinte motivo: Versão do artefato criada e execução de tarefa encontrada para associação (TE00012345), mas o sinalizador de pós-processamento concluído não está definido como verdadeiro. |
| register_artifact | NO_TASK_EXECUTION_FOUND | Durante uma chamada de registro de artefato, quando a execução da tarefa de onde a chamada se originou ainda não foi encontrada no sistema. | Não | Sua solicitação de registro de artefato está pendente pelo seguinte motivo: Versão do artefato criada, mas a execução da tarefa não foi encontrada para associação (pipelineName: TestPipeline, stageName: Pacote, taskExecutitionNumber: 18). |
| register_artifact | ALREADY_REGISTERED | Durante uma chamada de registro de artefato, quando a versão do artefato fornecida na carga de artefatos para um determinado artefato e repositório já existe no sistema. | Sim (ignorado) | Sua solicitação de registro de artefato foi ignorada pelo seguinte motivo: A versão do artefato já foi registrada. |
| register_artifact | NO_SUBFLOW_CONFIGURED | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos, e o webhook e o subfluxo de pesquisa não podem encontrar o registro da versão do artefato. | Sim (ignorado) | Sua solicitação de registro de artefato foi ignorada pelo seguinte motivo: A versão do artefato não está disponível na carga. Webhook e subfluxo de pesquisa não estão disponíveis. |
| register_artifact | NO_TASK_EXECUTION_FOUND | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga útil de artefatos, mas o webhook é compatível e o registro da versão do artefato pode ser encontrado, mas a execução da tarefa de onde a chamada se originou ainda não foi encontrada no sistema. | Não | Sua solicitação de registro de artefato está pendente pelo seguinte motivo: Versão do artefato encontrada via webhook, mas a execução da tarefa não foi encontrada para associação (pipelineName: TestPipeline, stageName: Package, taskExecutionNumber: 18). |
| register_artifact | TASK_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga útil de artefatos, mas o webhook é compatível e o registro da versão do artefato pode ser encontrado, e a execução da tarefa de onde a chamada se originou é encontrada no sistema, mas ainda não foi pós-processada. Ou seja, o evento de webhook concluído para esta execução de tarefa ainda não foi processado. | Não | Sua solicitação de registro de artefato está pendente pelo seguinte motivo: Versão do artefato encontrada via webhook e execução de tarefa encontrada para associação (TE00012345), mas o sinalizador de pós-processamento concluído não está definido como verdadeiro. |
| register_artifact | NO_TASK_EXECUTION_FOUND | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga útil de artefatos, mas o subfluxo de pesquisa é compatível e o registro da versão do artefato pode ser encontrado, mas a execução da tarefa de onde a chamada se originou ainda não foi encontrada no sistema. | Não | Sua solicitação de registro de artefato está pendente pelo seguinte motivo: Versão do artefato encontrada por meio de pesquisa, mas a execução da tarefa não foi encontrada para associação (pipelineName: TestPipeline, stageName: Pacote, taskExecutionNumber: 18). |
| register_artifact | TASK_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga útil de artefatos, mas o subfluxo de pesquisa é compatível e o registro da versão do artefato pode ser encontrado, e a execução da tarefa de onde a chamada se originou é encontrada no sistema, mas ainda não foi pós-processada. Ou seja, o evento de webhook concluído para esta execução de tarefa ainda não foi processado. | Não | Sua solicitação de registro de artefato está pendente pelo seguinte motivo: Versão do artefato encontrada por meio de pesquisa e execução de tarefa encontrada para associação (TE00012345), mas o sinalizador de pós-processamento concluído não está definido como verdadeiro. |
| register_artifact | ERROR_CALLING_SUBFLOW | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos e o subfluxo de pesquisa é compatível, mas a versão do artefato não pôde ser encontrada. | Sim (ignorado) | Sua solicitação de registro de artefato foi ignorada pelo seguinte motivo: Versão do artefato não encontrada pelo subfluxo de pesquisa. |
| register_artifact | ERROR_CALLING_SUBFLOW | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos e o subfluxo de pesquisa é compatível, mas não foi possível encontrar a versão do artefato devido a um erro no subfluxo. | Sim (ignorado) | Sua solicitação de registro de artefato foi ignorada pelo seguinte motivo: Versão do artefato não encontrada pelo subfluxo de pesquisa devido a um erro (consulte os logs do DevOps para obter detalhes adicionais). |
| register_artifact | ERROR_CALLING_SUBFLOW | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos e o subfluxo de pesquisa é compatível, mas não foi executado porque o registro de artefato primário não pôde ser encontrado no sistema. | Sim (ignorado) | Sua solicitação de registro de artefato foi ignorada pelo seguinte motivo: Artefato não encontrado. |