Artefatos e pacotes

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 13 min. de leitura
  • 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.

    DevOps atributos de solicitação de mudança:
    • 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

    Um pacote rastreia quando uma ou mais versões de artefato estão sendo usadas em um pipeline de implantação. Isso oferece dois benefícios importantes:
    1. 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.
    2. 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

    1. 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.
    2. Registre artefatos no pipeline de IC.
    3. 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.

    Para Jenkins pipeline:
    • 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

    Importante:
    Você deve adicionar a etapa de criação de pacote antes da etapa de mudança no pipeline, e a criação de pacote deve ser adicionada em uma fase anterior à etapa de mudança, para que os pacotes sejam vinculados à execução do pipeline para uma solicitação de mudança.
    Configure a criação de pacote de artefatos em um pipeline com script ou trabalho de estilo livre usando o endpoint /package/registration da API do DevOps.
    Nota:
    O nome do pacote deve ser especificado.
    Para Jenkins pipeline:
    • 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"}""")

      Pacote de aceleração de mudança de DevOps para versões

    Nota:
    Quando uma versão do artefato não está disponível durante a compilação, os detalhes da compilação (pipelineName ou projectName, taskExecutionNumber, stageName, ramificaçãoName) são usados para pesquisar a versão do artefato na execução da tarefa.

    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.

    DevOps aceleração de mudança para versões:
    Figura 1. DevOps solicitação de mudança – categoria DevOps
    Solicitação de mudança do DevOps.
    Figura 2. DevOps solicitação de mudança - confirmações e itens de trabalho
    Confirmações de solicitação de mudança do DevOps.
    Figura 3. DevOps lista de versões do artefato
    Lista de versões do artefato de DevOps.
    Figura 4. DevOps versão do artefato – confirmações
    Confirmações de artefatos do DevOps.
    Figura 5. DevOps versão do artefato – pacotes
    Pacotes de artefatos de DevOps.
    Figura 6. DevOps pacote
    Pacote de DevOps.

    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.

    Figura 7. Módulo de mudanças

    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é Espaço de mudança de DevOps > Mudanças > Solicitações de mudança de pipeline > Todos para todas as informações relacionadas à mudança.

    Solicitações de mudança de pipeline

    Solicitações de mudança de pipeline.
    Figura 8. Módulo de lista

    Você pode ver todos os artefatos e pacotes existentes diretamente usando o módulo Lista no navegador de aplicações.

    Navegar até Espaço de mudança de DevOps > Listas > Artefato para todas as informações relacionadas a artefatos.

    Lista de artefatos e pacotes.

    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.

    Nota:
    É recomendável ter nomes de artefato exclusivos para compilações de versão, ou seja, nomes de artefato diferentes para compilações em execução em compilações de ramificação diferentes.
    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.