Foram resolvidos vários pedidos da Comunidade de Programadores

Em resposta aos seus comentários, atribuímos prioridade a várias funcionalidades que pediu na Comunidade de Programadores. Em Pipelines, adicionámos suporte para a função de divisão de cadeias na expressão YAML. Além disso, estamos agora a permitir que desative a apresentação da última mensagem de consolidação para uma execução de pipeline. Nos Planos de Entrega, aumentámos o limite de equipa de 15 para 20.

Consulte as notas de versão para obter detalhes.

Azure Boards

Pipelines do Azure

Azure Boards

Aumentar o limite de equipa dos Planos de Entrega de 15 para 20

Os Planos de Entrega permitem-lhe ver vários atrasos e várias equipas na sua organização. Anteriormente, podia ver 15 registos pendentes de equipas, incluindo uma combinação de registos pendentes e equipas de diferentes projetos. Neste sprint, aumentámos o limite máximo de 15 para 20.

Corrigimos um erro nas Ligações de Item de Trabalho de Relatórios Obter API para devolver o valor remoteUrl correto para System.LinkTypes.Remote.Related tipos de ligação. Antes desta correção, estávamos a devolver o nome da organização errado e um ID do projeto em falta.

Correções de erros do Hub de Novos Quadros

Neste sprint, corrigimos vários erros para o Hub de Novos Quadros. Pode ver uma lista de correções de erros no Hub de Novos Quadros, publicação de blogue de atualização do Sprint 209.

Pipelines do Azure

Desativar a apresentação da última mensagem de consolidação para uma execução de pipeline

Anteriormente, a IU dos Pipelines utilizada para mostrar a última mensagem de consolidação ao apresentar a execução de um pipeline.

Exemplo da última mensagem de consolidação

Esta mensagem pode ser confusa, por exemplo, quando o código do pipeline YAML se encontra num repositório diferente daquele que contém o código que está a criar. Ouvimos o seu feedback da Comunidade de Programadores a pedir-nos uma forma de ativar/desativar a anexação da mensagem de consolidação mais recente para o título de cada execução de pipeline.

Com esta atualização, adicionámos uma nova propriedade YAML, denominada appendCommitMessageToRunName, que lhe permite fazer exatamente isso. Por predefinição, a propriedade está definida como true. Quando o definir como false, a execução do pipeline só apresentará o BuildNumber.

Exemplo de execução de pipeline com número de compilação

Exemplo de execução do pipeline com a última mensagem de consolidação

Recursos consumidos e parâmetros de modelo na API Rest de Execuções de Pipelines

A API REST de Execuções de Pipelines Expandidos devolve agora mais tipos de artefactos utilizados por uma execução de pipeline e os parâmetros utilizados para acionar essa execução. Melhorámos a API para devolver os container recursos e pipeline e os parâmetros de modelo utilizados numa execução de pipeline. Agora pode, por exemplo, escrever verificações de conformidade que avaliam os repositórios, contentores e outras execuções de pipeline utilizadas por um pipeline.

Eis um exemplo do novo corpo de resposta.

"resources":
{
    "repositories":
    {
        "self":
        {
            "repository":
            {
                "id": "e5c55144-277b-49e3-9905-2dc162e3f663",
                "type": "azureReposGit"
            },
            "refName": "refs/heads/main",
            "version": "44153346ecdbbf66c68c20fadf27f53ea1394db7"
        },
        "MyFirstProject":
        {
            "repository":
            {
                "id": "e5c55144-277b-49e3-9905-2dc162e3f663",
                "type": "azureReposGit"
            },
            "refName": "refs/heads/main",
            "version": "44153346ecdbbf66c68c20fadf27f53ea1394db7"
        }
    },
    "pipelines":
    {
        "SourcePipelineResource":
        {
            "pipeline":
            {
                "url": "https://dev.azure.com/fabrikam/20317ad0-ae49-4588-ae92-6263028b4d83/_apis/pipelines/51?revision=3",
                "id": 51,
                "revision": 3,
                "name": "SourcePipeline",
                "folder": "\\source"
            },
            "version": "20220801.1"
        }
    },
    "containers":
    {
        "windowscontainer":
        {
            "container":
            {
                "environment":
                {
                    "Test": "test"
                },
                "mapDockerSocket": false,
                "image": "mcr.microsoft.com/windows/servercore:ltsc2019",
                "options": "-e 'another_test=tst'",
                "volumes":
                [
                    "C:\\Users\\fabrikamuser\\mount-fabrikam:c:\\mount-fabrikam"
                ],
                "ports":
                [
                    "8080:80",
                    "6379"
                ]
            }
        }
    }
},
"templateParameters":
{
    "includeTemplateSteps": "True"
}

Adicionar suporte para a função divisão de cadeias em expressões de modelo YAML

Os pipelines YAML fornecem-lhe formas convenientes de reduzir a duplicação de código, como fazer looping através each do valor de uma lista ou propriedade de um objeto.

Por vezes, o conjunto de itens a iterar é representado como uma cadeia. Por exemplo, quando a lista de ambientes a implementar é definida pela cadeia integration1, integration2.

À medida que ouvimos o seu feedback da Comunidade de Programadores, ouvimos dizer que queria uma função de cadeia split em expressões de modelo YAML.

Agora, pode split uma cadeia e iterar sobre each as respetivas subcadeias.

variables:
  environments: integration1, integration2

jobs:
  - job: Deploy
    steps:
    - ${{ each env in split(variables.environments, ', ') }}:
      - script: ./deploy.sh -e ${{ env }}
      - script: ./runTest.sh -e ${{ env }}

Não sincronizar etiquetas ao obter um repositório git

A tarefa de finalização de compra utiliza --tags a opção para obter o conteúdo de um repositório Git. Isto faz com que o servidor obtenha todas as etiquetas, bem como todos os objetos que são apontados por essas etiquetas. Isto aumenta o tempo para executar a tarefa num pipeline, especialmente se tiver um repositório grande com várias etiquetas. Além disso, a tarefa de finalização de compra sincroniza etiquetas mesmo quando ativa a opção de obtenção superficial, o que pode, assim, derrotar o seu objetivo. Para reduzir a quantidade de dados obtidos ou extraídos de um repositório Git, adicionámos agora uma nova opção à tarefa para controlar o comportamento das etiquetas de sincronização. Esta opção está disponível em pipelines clássicos e YAML.

Este comportamento pode ser controlado a partir do ficheiro YAML ou da IU.

Para não sincronizar as etiquetas através do ficheiro YAML, adicione o fetchTags: false ao passo de finalização da compra. Quando a opção fetchTags não é especificada, é igual a se fetchTags: true for utilizada.

steps:
- checkout: self  # self represents the repo where the initial Pipelines YAML file was found
  clean: boolean  # whether to fetch clean each time
  fetchTags: boolean # whether to sync the tags
  fetchDepth: number  # the depth of commits to ask Git to fetch
  lfs: boolean  # whether to download Git-LFS files
  submodules: boolean | recursive  # set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules
  path: string  # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
  persistCredentials: boolean  # set to 'true' to leave the OAuth token in the Git config after the initial fetch

Se quiser alterar o comportamento dos pipelines YAML existentes, poderá ser mais conveniente definir esta opção na IU em vez de atualizar o ficheiro YAML. Para navegar para a IU, abra o editor YAML para o pipeline, selecione Acionadores e, em seguida, Processe e, em seguida, o passo Saída.

Se especificar esta definição no ficheiro YAML e na IU, o valor especificado no ficheiro YAML tem precedência.

Para todos os novos pipelines que criar (YAML ou Clássico), as etiquetas continuam sincronizadas por predefinição. Esta opção não altera o comportamento dos pipelines existentes. As etiquetas continuarão a ser sincronizadas nesses pipelines, a menos que altere explicitamente a opção conforme descrito acima.

Agenda de brownout atualizada para imagens do Ubuntu 18.04

O Azure Pipelines está a preterir a imagem do Ubuntu 18.04 (ubuntu-18.04) nos nossos conjuntos alojados. Esta imagem será descontinuada a 1 de dezembro. Poderá começar a ver tempos de fila mais longos.

Para o ajudar a identificar melhor quais os pipelines que estão a utilizar a imagem ubuntu-18.04, estamos a planear os brownouts. As tarefas falharão durante um período de brownout.

  • As mensagens de aviso são apresentadas em execuções de pipeline com a imagem ubuntu-18.04
  • Está disponível um script para o ajudar a encontrar pipelines com imagens preteridas, incluindo ubuntu-18.04
  • Estamos a agendar "brownouts" curtos. Qualquer execução ubuntu-18.04 falhará durante o período de brownout. Por conseguinte, recomenda-se migrar os pipelines antes dos brownouts.

Agenda do Brownout (atualizado)

  • 3 de outubro, 12:00 UTC - 3 de outubro, 14:00 UTC
  • 18 de outubro, 14:00 UTC - 18 de outubro, 16:00 UTC
  • 15 de novembro, 18:00 UTC - 15 de novembro, 20:00 UTC
  • 30 de novembro, 20:00 UTC - 30 de novembro, 22:00 UTC
  • 15 de dezembro, 20:00 UTC - 16 de dezembro 00:00 UTC
  • 5 de janeiro, 10.00 UTC - 5 de janeiro, 14.00 UTC
  • 13 de janeiro, 12.00 UTC - 13 de janeiro, 16.00 UTC
  • 18 de janeiro, 14.00 UTC - 18 de janeiro, 18.00 UTC
  • 24 de janeiro, 16.00 UTC - 24 de janeiro, 20.00 UTC
  • 1 de fevereiro, 18.00 UTC - 1 de fevereiro, 22.00 UTC
  • 7 de fevereiro, 16.00 UTC - 7 de fevereiro, 22.00 UTC
  • 13 de fevereiro, 14.00 UTC - 13 de fevereiro, 22.00 UTC
  • 21 de fevereiro, 10.00 UTC - 21 de fevereiro, 22.00 UTC
  • 28 de fevereiro, 10.00 UTC - 28 de fevereiro, 22.00 UTC
  • 6 de março, 00.00 UTC - 7 de março, 00.00 UTC
  • 13 de março, 00.00 UTC - 14 de março, 00.00 UTC
  • 21 de março, 00.00 UTC - 22 de março, 00.00 UTC

Passos seguintes

Nota

Estas funcionalidades serão implementadas nas próximas duas a três semanas.

Aceda ao Azure DevOps e dê uma vista de olhos.

Como fornecer comentários

Gostaríamos de ouvir o que pensa sobre estas funcionalidades. Utilize o menu de ajuda para comunicar um problema ou fornecer uma sugestão.

Fazer uma sugestão

Também pode obter conselhos e as suas perguntas respondidas pela comunidade no Stack Overflow.

Obrigado,

Aaron Hallberg