Artefatos e pacotes
Artefatos e pacotes permitem que Velocidade de mudança para DevOps rastreie as atividades de desenvolvimento e teste em uma ampla variedade de modelos de implantação e versão. Este recurso garante que a atividade de pipeline armazenada no modelo de dados DevOps possa ser recuperada e aplicada quando artefatos são criados e liberados em momentos diferentes ou em pipelines diferentes.
Artefatos
Quando uma versão do artefato é registrada, as 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 seja implantada, esses detalhes possam ser recuperados. Pode estar na execução do pipeline atual, em uma execução posterior do mesmo pipeline, em um pipeline que é acionado pelo atual ou em um pipeline separado que é 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.
- A caixa de seleçãoCategoria DevOps ou Categorizar solicitações de mudança do DevOps no campo "Mudança do DevOps" está marcada nas propriedades DevOps. Para obter mais informações, consulte DevOps solicitação de mudança sem impor categoria como DevOps.
- Listas relacionadas a compromissos e itens de trabalho
Packages
- Recuperação de atividades para todas as versões de artefatos declaradas no pacote. Por exemplo, para uso em uma política automatizada de aprovação de mudanças.
- Registrar 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 do artefato
- Crie um registro de ferramenta de artefato no DevOps.Nota:Uma ferramenta de artefato não é necessária, a menos que um webhook ou uma configuração de subfluxo de integração criada pelo usuário seja necessária para pesquisar versões de artefatos.
- Registre artefatos no pipeline de IC.
- Crie um pacote no pipeline de CD.Nota:A etapa de criação de pacote deve ser anterior à etapa de implantação de produção.
Registro de artefato
Configure o registro de artefatos em um pipeline com script ou trabalho de estilo livre usando o endpoint /artifact/registration da API do DevOps. Várias versões de artefato são compatíveis.
Pipeline com script e declarativo (comandosnDevOpsArtifact Jenkinsfile)
Por exemplo:snDevOpsArtifact(artifactsPayload: """{"artifacts": [{"name": "sa-web.jar", "version": "1.9","semanticVersion": "1.9.0","repositoryName": "services-1031"}], "branchName": "master"}""")Trabalho de estilo livre (etapa de criaçãodo artefato de registro )
Por exemplo:{"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","semanticVersion":"1.9.0","repositoryName":"maven-releases"}]}
Criação de pacote de artefato
Trabalho de estilo livre (etapa de compilaçãoCriar pacote )
Por exemplo:
{"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","repositoryName":"maven-releases"}]}Pipeline declarativo e com script (comandosnDevOpsPackage Jenkinsfile)
Pacote com mais de um artefato (de diferentes repositórios) 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 de plug-in includeBuildInfo pode ser usada para incluir detalhes de compilação na chamada de API.
Fluxo de trabalho de artefato e objetos
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 (consistindo nas confirmações de código relacionadas). Um pacote é criado para a versão (consistindo 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 gerenciadores de repositório de artefatos, como JFrog Artifactory.
Nota:Uma ferramenta de artefato não é necessária, a menos que um webhook ou uma configuração de subfluxo de integração criada pelo usuário seja necessária para pesquisar versões de artefatos.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 de 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 rastreado.
Versão de semântica
Atributo opcional de uma versão de artefato que, quando fornecido, é usado 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 artefatos usadas como entrada para um pipeline de CD ou para associar resultados de testes.
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 no módulo 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 o módulo 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 o módulo 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, eles geralmente são preparados na tabela sn_devops_artifact_staging, enquanto os dados necessários restantes para a criação e a vinculação desses objetos são recebidos de eventos de entrada ou obtidos por fluxos DevOps.
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. O campo Descrição 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 |
|---|---|---|---|---|
| criar_associação_de_pacote | AGUARDANDO_PARA_OUTROS_SOLICITAÇÕES_ESTAGEADAS | 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, 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 a associação (TE00012345) e sinalizador de pós-processamento definido como verdadeiro, mas nem todas as versões de artefato foram encontradas. Contagem total de artefatos: 2 |
| criar_associação_de_pacote | TAREFA_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de pacote, quando a execução da tarefa de origem da chamada é 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 a associação (TE00012345), mas o sinalizador de conclusão de pós-processamento não está definido como verdadeiro. Contagem total de artefatos: 2 |
| criar_associação_de_pacote | NENHUMA_TAREFA_EXECUÇÃO_Encontrada | Durante uma chamada de registro de pacote, quando a execução da tarefa de origem da chamada 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 a associação (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18). Contagem total de artefatos: 2 |
| criar_pacote | VERSÃO NÃO ENCONTRADA | Durante uma chamada de registro de pacote, quando a versão do artefato foi aprovada, a carga dos 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 (name=TestArtifact, version=2.5, repositórioName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18). Contagem de artefatos: 1 em 2 |
| criar_pacote | VERSÃO NÃO ENCONTRADA | Durante uma chamada de registro de pacote, quando a versão do artefato não é passada na carga de artefatos, mas contém um taskExecutionSysId ou (pipelineName, stageName, taskExecutionNumber) que pode ser usado para pesquisar o registro de execução da tarefa, que neste 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: A versão do artefato não está disponível na carga e não foi encontrada usando detalhes de execução de tarefa (name=TestArtifact, version=2.5, repositórioName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18) (TE00012345). Contagem de artefatos: 1 em 2 |
| criar_pacote | TAREFA_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de pacote, quando a versão do artefato não é passada na carga de artefatos, mas contém um taskExecutionSysId ou (pipelineName, stageName, taskExecutionNumber) que pode ser usado para pesquisar o registro de execução da tarefa, que neste caso é encontrado mas ainda não foi pós-processado. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: A versão do artefato não está disponível na carga e a execução de tarefa foi encontrada para a associação, mas o sinalizador de pós-processamento concluído não está definido como verdadeiro (name=TestArtifact, version=2.5, repositórioName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18) (TE00012345) ). Contagem de artefatos: 1 em 2 |
| criar_pacote | NENHUMA_TAREFA_EXECUÇÃO_Encontrada | Durante uma chamada de registro de pacote, quando a versão do artefato não é passada na carga de artefatos, mas contém um taskExecutionSysId ou (pipelineName, stageName, taskExecutionNumber) que pode ser usado para pesquisar o registro de execução da tarefa, que neste caso não é t encontrado. | Não | Sua solicitação de registro de pacote está pendente pelo seguinte motivo: A versão do artefato não está disponível na carga e a execução de tarefa também não foi encontrada para a associação (name=TestArtifact, version=2.5, repositórioName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18). Contagem de artefatos: 1 em 2 |
| criar_pacote | AGUARDANDO_PARA_OUTROS_SOLICITAÇÕES_ESTAGEADAS | Durante uma chamada de registro de pacote, quando a versão do artefato aprovada na carga de artefatos foi encontrada no sistema, mas deve aguardar o processamento de 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 em 2 |
| registrar_artifact | TAREFA_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de artefato, quando a execução da tarefa de origem da chamada é 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 criada e execução de tarefa encontrada para associação para associação (TE00012345), mas o sinalizador de conclusão de pós-processamento não está definido como verdadeiro. |
| registrar_artifact | NENHUMA_TAREFA_EXECUÇÃO_Encontrada | Durante uma chamada de registro de artefato, quando a execução da tarefa de origem da chamada 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 de tarefa não foi encontrada para a associação (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18). |
| registrar_artifact | VERSÃO_JÁ_REGISTADA | 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. |
| registrar_artifact | NÃO_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 devem 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. O webhook e o subfluxo de pesquisa não estão disponíveis. |
| registrar_artifact | NENHUMA_TAREFA_EXECUÇÃO_Encontrada | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga 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 origem da chamada 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 do webhook, mas a execução de tarefa não foi encontrada para a associação (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18). |
| registrar_artifact | TAREFA_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos, mas o webhook é compatível e o registro da versão do artefato pode ser encontrado, e a execução de tarefa de origem da chamada é encontrada no sistema, mas não foi já foi pós-processado. 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 webhook e execução de tarefa encontrada para a associação (TE00012345), mas o sinalizador de conclusão de pós-processamento não está definido como verdadeiro. |
| registrar_artifact | NENHUMA_TAREFA_EXECUÇÃO_Encontrada | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga 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 origem da chamada ainda não foi encontrada em o 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 execução de tarefa não encontrada para a associação (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18). |
| registrar_artifact | TAREFA_EXEC_POST_PROCESSING_PENDING | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos, mas o subfluxo de pesquisa é compatível e o registro da versão do artefato pode ser encontrado, e a execução de tarefa de origem da chamada é encontrada no sistema, mas ainda não foi pós-processado. 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 a associação (TE00012345), mas o sinalizador de conclusão de pós-processamento não está definido como verdadeiro. |
| registrar_artifact | ERROR_CALLING_SUBFLOW | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos, o subfluxo de pesquisa é compatível, mas não foi possível encontrar a versão do artefato. | 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. |
| registrar_artifact | ERROR_CALLING_SUBFLOW | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos, o subfluxo de pesquisa é compatível, mas não pôde 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). |
| registrar_artifact | ERROR_CALLING_SUBFLOW | Durante uma chamada de registro de artefato, quando a versão do artefato não é fornecida na carga de artefatos, o subfluxo de pesquisa é compatível, mas não foi executado porque o registro do artefato primário não foi encontrado no sistema. | Sim (Ignorado) | Sua solicitação de registro de artefato foi ignorada pelo seguinte motivo: Artefato não encontrado. |