Confirmações incluídas na solicitação de mudança DevOps

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 7 min. de leitura
  • O pacote de artefatos DevOps e suas versões de artefatos associadas são usados para determinar quais confirmações estão incluídas em uma mudança DevOps.

    As confirmações são incluídas em uma mudança com base no tipo de mudança.
    Tipo de mudança Confirmações incluídas
    Manual Confirma a partir das versões de artefato do pacote na mudança. Além disso, as confirmações de execuções de tarefa de todas as execuções de pipeline no registro de referência de mudança quando a coluna data_type é plano ou execução de pipeline são incluídas.
    Automatizado
    • Sem pacote: todas as confirmações das versões do artefato estão incluídas. As versões do artefato são aquelas que estão vinculadas à execução do pipeline e às execuções de tarefa para essa execução do pipeline.
    • Com pacote: se qualquer uma das execuções de tarefa ascendente da mudança tiver a etapa de implantação de produção, as confirmações da última execução de pipeline de implantação de produção bem-sucedida serão incluídas. As confirmações que aparecem em várias execuções de pipeline serão listadas apenas uma vez. Se a etapa de implantação de produção não estiver presente nas execuções de tarefa ascendente, as confirmações de todas as versões de artefato do pacote serão incluídas.
    • Executar confirmações: se não houver confirmações de com ou sem fluxo de pacote conforme especificado anteriormente, as execuções de execução das execuções de tarefa ascendente da solicitação de mudança serão associadas.
    Todas as confirmações das versões do artefato no pacote que foram geradas após a data da última implantação (até a versão que está sendo implantada no momento) são incluídas na solicitação de mudança. As versões principais anteriores não estão incluídas.
    Nota:
    As versões de patch e hot fix são excluídas.
    Quando fornecida, a versão semântica é usada para determinar confirmações para uma mudança. O formato é (MAJOR.MINOR.PATCH). Por exemplo, a versão semântica 2.0.1 é lida da seguinte forma:
    • Versão principal 2
    • Versão secundária 0
    • Versão de patch/Hotfix 1

    As execuções de tarefa com falha entre as versões anterior e atual do artefato que não criaram um artefato, mas têm confirmações associadas, também são associadas à versão do artefato criado.

    Tipos de confirmações

    • Confirmações normais: as confirmações no repositório rastreado são associadas à solicitação de mudança.
    • Reverter confirmações: confirmações que têm o valor do campo de reversão verdadeiro. Uma confirmação de reversão resulta em uma confirmação revertida e uma confirmação de reversão na árvore de origem. Ambas as confirmações não estão associadas à solicitação de mudança.
    • Mesclar confirmações: confirmações que têm o valor do campo de mesclagem como verdadeiro.
      • Mesclar confirmação: a árvore de origem rastreia a confirmação para uma ramificação ao longo do tempo e permite que uma confirmação de mesclagem especial seja feita. Esta confirmação de mesclagem combina as confirmações primárias localizadas diretamente após a confirmação comum mais recente na ramificação atual e na ramificação a ser mesclada. A confirmação de mesclagem adiciona uma nova confirmação na ramificação principal.
      • Squash e mesclagem: a compactação durante uma mesclagem gera a árvore de trabalho e o estado do índice para corresponder a uma mesclagem sem criar uma confirmação de mesclagem. Comprimir e mesclar mantém as mudanças, mas remove as confirmações individuais do histórico. Ele tem uma única confirmação com o valor de mesclagem verdadeiro.

    Exemplo: confirmações e pacotes

    Este exemplo consiste em:
    • Três pipelines de compilação (A, B e C)
    • Um pipeline de versão (ABC) sob controle de mudança, com quatro pacotes:
      1. Criar pipeline A (versão principal 1)
      2. Criar pipelines A e B (versão principal 1)
      3. Criar pipelines B e C (versão principal 1)
      4. Criar pipelines A, B e C (versão principal 1)
    Tabela 1. Pacote 1 (A 1.1.0)
    Confirmação Criar pipeline Versão de semântica Incluído no pacote
    1 A 1.0.0 X
    2 A 1.0.1 --
    3 A 1.1.0 X
    Nota:
    A confirmação 2 (compilação A, versão semântica 1.0.1) não está incluída no pacote porque a sintaxe da versão semântica indica um patch ou hotfix.
    Tabela 2. Pacote 2 (A 1.2.0, B 1.1.0)
    Confirmação Criar pipeline Versão de semântica Incluído no pacote
    4 A 1.1.1 --
    5 A 1.2.0 X
    6 A 1.2.0 X
    7 B 1.0.0 X
    8 B 1.0.0 X
    9 B 1.1.0 X
    10 B 1.1.0 X
    Nota:
    A confirmação 4 (compilação A, versão semântica 1.1.1) não está incluída porque a sintaxe da versão semântica indica um patch ou hot fix.
    Tabela 3. Pacote 3 (B 1.2.0, C 1.0.0)
    Confirmação Criar pipeline Versão de semântica Incluído no pacote
    11 A 1.3.0 --
    12 B 1.2.0 X
    13 B 1.2.0 X
    14 C 1.0.0 X
    15 C 1.0.0 X
    16 C 1.0.0 X
    Nota:
    A confirmação 11 (compilação A, versão semântica 1.3.0) não está incluída porque o pacote não especifica a compilação A.
    Tabela 4. Pacote 4 (A 1.4.0, B 1.3.0, C 1.2.0)
    Confirmação Criar pipeline Versão de semântica Incluído no pacote
    17 A 1.4.0 X
    18 A 1.4.0 X
    19 B 1.3.0 X
    20 B 1.3.0 X
    21 C 1.1.0 X
    22 C 1.1.0 X
    23 C 1.2.0 X
    24 C 1.2.0 X
    Nota:
    A confirmação 11 também está incluída neste pacote porque faz parte das mudanças na versão principal 1 da compilação A desde que o último pacote (incluindo a versão principal 1 da compilação A), pacote nº 2, foi implantado na produção.

    Exemplo: lógica de cálculo de confirmação

    Caso de uso com a lógica para calcular confirmações que são associadas a versões de artefatos. As informações de ramificação são incluídas sempre que as confirmações são definidas.

    Por exemplo, considere dois pipelines, um na ramificação principal e um na ramificação de teste. Executar cenário:

    • Crie um C0 de confirmação no principal, execute a compilação de IC, mas não crie a versão do artefato.
    • Crie uma confirmação C1 no teste, execute a compilação de IC, mas não crie a versão do artefato.
    • Crie uma confirmação C2 em principal, execute a compilação de IC e a compilação falhará.
    • Crie 2 confirmações C3, C4 em principal, execute uma compilação de IC e crie uma versão de artefato (v1.0).
    Resultado esperado: a versão do artefato (v1.0) está associada a C0, C2, C3, C4. A confirmação C1 foi excluída porque está em uma ramificação diferente.
    Continuando com o caso de uso:
    • Crie 1 confirmação C5 no principal, execute a compilação de IC, mas não crie a versão do artefato.
    • Crie 1 confirmação C6 em principal, execute a compilação de IC e crie uma versão de artefato (v2.0).
    Resultado esperado: a nova versão do artefato (v2.0) criada está associada a C5, C6.
    Resumo:
    • Todas as confirmações de execuções de pipeline (com sucesso e com falha) na mesma ramificação, entre a última versão do artefato de um determinado artefato e a versão atual do artefato, estão associadas.
    • Se nenhuma versão do artefato anterior for encontrada para o artefato fornecido, todas as confirmações de execuções de pipeline na mesma ramificação serão associadas.

    Continuando com o caso de uso:

    Crie uma versão com a Versão do artefato da etapa anterior, tenha um pipeline de CD com Tipo de etapa = Implantação de produção.

    Resultado esperado:
    • A versão está associada à mesma versão do artefato (v2.0).
    • A solicitação de mudança criada mostra a versão do artefato (v2.0) e as confirmações C0, C2, C3, C4, C5, C6.
    Resumo:
    • As confirmações de ambas as versões de artefato (v1.0, v2.0) criadas na ramificação principal (nenhum pacote anterior foi implantado na produção) são mostradas na solicitação de mudança, mas não na confirmação da execução na ramificação de teste.
    • O número de confirmações mostrado na solicitação de mudança será o mesmo que o número na ferramenta.
    Continuando com o caso de uso:
    • Crie 2 confirmações C7, C8 na ramificação de teste, execute a compilação de IC e crie uma versão de artefato.

      Resultado esperado: a versão do artefato (v3.0) está associada a C1, C7, C8.

    • Crie 2 confirmações C9, C10 na ramificação principal, execute a compilação de IC e crie uma versão de artefato.

      Resultado esperado: a versão do artefato (v4.0) está associada a C9, C10.

    • Crie uma versão com a versão do artefato da etapa anterior (v4.0), tenha um pipeline de CD com tipo de etapa = Implantação de produção.
      Resultado esperado:
      • A versão está associada à versão do artefato (v4.0).
      • A solicitação de mudança criada mostra a versão do artefato (v4.0) e confirma C9, C10.
    Resumo:
    • A solicitação de mudança mostra confirmações apenas da versão mais recente do artefato criada na ramificação principal, já que as confirmações das versões anteriores do artefato criadas na principal foram implantadas na produção no pacote anterior.
    • Nenhuma confirmação da versão do artefato criada no teste é mostrada.
    • O número de confirmações mostrado na solicitação de mudança será o mesmo que o número na ferramenta.