Agentes hospedados pela Microsoft

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Os agentes hospedados pela Microsoft só estão disponíveis com Azure DevOps Services, que está hospedado na nuvem. Você não pode usar agentes hospedados pela Microsoft ou o pool de agentes do Azure Pipelines com TFS local ou Azure DevOps Server. Com essas versões locais, você deve usar agentes auto-hospedados.

Importante

Selecione uma versão do seletor de versão de conteúdo do Azure DevOps.

Para exibir o conteúdo disponível para sua plataforma, selecione a versão correta deste artigo no seletor de versão que está localizado acima da tabela de conteúdo. O suporte a recursos difere dependendo se você está trabalhando de Azure DevOps Services ou de uma versão local do Azure DevOps Server, renomeada do TFS (Team Foundation Server).
Para saber qual versão local você está usando, consulte qual plataforma/versão estou usando?

Se seus pipelines estiverem no Azure Pipelines, você tem uma opção conveniente para executar seus trabalhos usando um agente hospedado pela Microsoft. Com os agentes hospedados pela Microsoft, a manutenção e as atualizações são feitas para você. Cada vez que você executa um pipeline, obtém uma máquina virtual nova para cada trabalho no pipeline. A máquina virtual é descartada após um trabalho (o que significa que qualquer alteração feita por um trabalho no sistema de arquivos da máquina virtual, como o check-out de código, ficará indisponível para o próximo trabalho). Os agentes hospedados pela Microsoft podem executar trabalhos diretamente na VM ou em um contêiner.

O Azure Pipelines fornece um pool de agentes predefinido chamado Azure Pipelines com agentes hospedados pela Microsoft.

Para muitas equipes, essa é a maneira mais simples de executar seus trabalhos. Você pode experimentá-la primeiro e ver se ela funciona para seu build ou sua implantação. Caso contrário, você pode usar um agente auto-hospedado.

Dica

Você pode experimentar um agente hospedado pela Microsoft sem custo.

Software

O pool de agentes do Azure Pipelines oferece várias imagens de máquina virtual para escolher, cada uma incluindo uma ampla gama de ferramentas e software.

Image Especificação do Agente do Editor Clássico Rótulo de imagem da VM YAML Software incluído
Windows Server 2022 com Visual Studio 2022 windows-2022 windows-latest OU windows-2022 Link
Windows Server 2019 com Visual Studio 2019 windows-2019 windows-2019 Link
Versão prévia do Ubuntu 22.04 ubuntu-22.04 ubuntu-22.04 Link
Ubuntu 20.04 ubuntu-20.04 ubuntu-latest OU ubuntu-20.04 Link
Ubuntu 18.04 ubuntu-18.04 ubuntu-18.04 Link
macOS 12 Monterey macOS-12 macOS-12 Link
macOS 11 Big Sur macOS-11 macOS-latest OU macOS-11 Link
macOS X Catalina 10.15 macOS-10.15 macOS-10.15 Link

A imagem de agente padrão para pipelines de build clássicos é windows-2019, e a imagem de agente padrão para pipelines de build YAML é ubuntu-latest. Para obter mais informações, consulte Designar um pool em seu pipeline.

Você pode ver o software instalado para cada agente hospedado escolhendo o link software incluído na tabela. Ao usar imagens macOS, você pode selecionar manualmente entre versões da ferramenta. Veja abaixo.

Observação

windows-latest fluxos de trabalho usarão windows-2022.

macOS-latest fluxos de trabalho usarão macOS-11.

A imagem hospedada do Ubuntu 16.04 foi removida em setembro de 2021.

O Windows Server 2016 com a imagem do Visual Studio 2017 foi preterido e será desativado em 30 de junho de 2022. Leia esta postagem no blog sobre como identificar pipelines usando imagens preteridas.

Em dezembro de 2021, removemos a seguinte imagem hospedada do Azure Pipelines:

  • macOS X Mojave 10.14 (macOS-10.14)

Em março de 2020, removemos as seguintes imagens hospedadas do Azure Pipelines:

  • Windows Server 2012R2 com Visual Studio 2015 (vs2015-win2012r2)
  • macOS X High Sierra 10.13 (macOS-10.13)
  • Windows Server Core 1803 (win1803)

Os clientes são incentivados a migrar para versões mais recentes ou um agente auto-hospedado.

Para obter mais informações e instruções sobre como atualizar seus pipelines que usam essas imagens, consulte Remover imagens mais antigas nos pools hospedados do Azure Pipelines.

Observação

O pool hospedado do Azure Pipelines substitui os pools hospedados anteriores que tinham nomes mapeados para as imagens correspondentes. Todos os trabalhos que você teve nos pools hospedados anteriores são redirecionados automaticamente para a imagem correta no novo pool hospedado do Azure Pipelines. Em algumas circunstâncias, você ainda pode ver os nomes de pool antigos, mas nos bastidores os trabalhos hospedados são executados usando o pool do Azure Pipelines. Para obter mais informações sobre essa atualização, consulte as notas de versão do pool hospedado único das notas de versão de 1º de julho de 2019 – Sprint 154.

Importante

Para solicitar que software adicional seja instalado em agentes hospedados pela Microsoft, não crie uma solicitação de comentários neste documento nem abra um tíquete de suporte. Em vez disso, abra um problema em nosso repositório, em que gerenciamos os scripts para gerar várias imagens.

Usar um agente hospedado pela Microsoft

Em pipelines YAML, se você não especificar um pool, os pipelines serão padrão para o pool de agentes do Azure Pipelines. Você simplesmente precisa especificar qual imagem de máquina virtual deseja usar.

jobs:
- job: Linux
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo hello from Linux
- job: macOS
  pool:
    vmImage: 'macOS-latest'
  steps:
  - script: echo hello from macOS
- job: Windows
  pool:
    vmImage: 'windows-latest'
  steps:
  - script: echo hello from Windows

Observação

A especificação de um pool pode ser feita em vários níveis em um arquivo YAML. Se você observar que o pipeline não está em execução na imagem esperada, verifique a especificação do pool nos níveis de pipeline, estágio e trabalho.

Evitar referências codificadas em código

Quando você usa um agente hospedado pela Microsoft, sempre usa variáveis para fazer referência aos recursos do ambiente de build e do agente. Por exemplo, não codifique a letra da unidade ou a pasta que contém o repositório. O layout preciso dos agentes hospedados está sujeito a alterações sem aviso.

Hardware

Os agentes hospedados pela Microsoft que executam imagens do Windows e linux são provisionados em máquinas virtuais de uso geral do Azure com uma CPU de 2 núcleos, 7 GB de RAM e 14 GB de espaço em disco SSD. Essas máquinas virtuais estão localizadas na mesma geografia que sua organização do Azure DevOps.

Os agentes que executam imagens do macOS são provisionados em profissionais mac com uma CPU de 3 núcleos, 14 GB de RAM e 14 GB de espaço em disco SSD. Esses agentes sempre são executados nos EUA, independentemente do local da sua organização do Azure DevOps. Se a soberania de dados for importante para você e se sua organização não estiver nos EUA, você não deverá usar imagens macOS. Saiba mais.

Todos esses computadores têm pelo menos 10 GB de espaço em disco livre disponível para seus pipelines serem executados. Esse espaço livre é consumido quando o pipeline verifica o código-fonte, baixa pacotes, efetua pull de imagens do Docker ou gera arquivos intermediários.

Importante

Não podemos honrar solicitações para aumentar o espaço em disco em agentes hospedados pela Microsoft ou provisionar computadores mais avançados. Se as especificações dos agentes hospedados pela Microsoft não atenderem às suas necessidades, você deverá considerar agentes auto-hospedados ou agentes do conjunto de dimensionamento.

Rede

Em algumas configurações, talvez seja necessário saber o intervalo de endereços IP em que os agentes são implantados. Por exemplo, se você precisar conceder acesso aos agentes hospedados por meio de um firewall, talvez deseje restringir esse acesso por endereço IP. Como o Azure DevOps usa a rede global do Azure, os intervalos de IP variam ao longo do tempo. Publicamos um arquivo JSON semanal listando intervalos de IP para datacenters do Azure, divididos por região. Esse arquivo é atualizado semanalmente com novos intervalos de IP planejados. Os novos intervalos de IP passam a vigorar na semana seguinte. Recomendamos que você faça check-back com frequência (pelo menos uma vez por semana) para garantir que você mantenha uma lista atualizada. Se os trabalhos do agente começarem a falhar, uma primeira etapa de solução de problemas será garantir que sua configuração corresponda à lista mais recente de endereços IP. Os intervalos de endereços IP para os agentes hospedados são listados no arquivo AzureCloud.<region>semanal em , como AzureCloud.westus para a região Oeste dos EUA.

Seus agentes hospedados são executados na mesma geografia do Azure que sua organização. Cada geografia contém uma ou mais regiões. Embora seu agente possa ser executado na mesma região que sua organização, não há garantia de que o faça. Para obter a lista completa de possíveis intervalos de IP para seu agente, você deve usar os intervalos de IP de todas as regiões contidas em sua geografia. Por exemplo, se sua organização estiver localizada no Estados Unidos geografia, você deverá usar os intervalos de IP para todas as regiões nessa geografia.

Para determinar sua geografia, navegue até https://dev.azure.com/<your_organization>/_settings/organizationOverview, obtenha sua região e localize a geografia associada da tabela de geografia do Azure . Depois de identificar sua geografia, use os intervalos de IP do arquivo semanal para todas as regiões nessa geografia.

Importante

Você não pode usar conexões privadas, como ExpressRoute ou VPN, para conectar agentes hospedados pela Microsoft à sua rede corporativa. O tráfego entre agentes hospedados pela Microsoft e seus servidores será pela rede pública.

Para identificar os possíveis intervalos de IP para agentes hospedados pela Microsoft

  1. Identifique a região para sua organização nas configurações da Organização.
  2. Identifique a Geografia do Azure para a região da sua organização.
  3. Mapeie os nomes das regiões em sua geografia para o formato usado no arquivo semanal, seguindo o formato de AzureCloud.<region>, como AzureCloud.westus. Você pode mapear os nomes das regiões da lista de Geografia do Azure para o formato usado no arquivo semanal examinando os nomes de região passados para o construtor das regiões definidas no código-fonte da classe Region, das Bibliotecas de Gerenciamento do Azure para .NET.

    Observação

    Como não há nenhuma API nas Bibliotecas de Gerenciamento do Azure para .NET para listar as regiões de uma geografia, você deve listá-las manualmente, conforme mostrado no exemplo a seguir.

  4. Recupere os endereços IP para todas as regiões em sua geografia do arquivo semanal. Se sua região for Sul do Brasil ou Europa Ocidental, você deverá incluir intervalos de IP adicionais com base em sua geografia de fallback, conforme descrito na observação a seguir.

Observação

Devido a restrições de capacidade, algumas organizações nas regiões Sul do Brasil ou Europa Ocidental podem ocasionalmente ver seus agentes hospedados localizados fora de sua geografia esperada. Nesses casos, além de incluir os intervalos de IP para todas as regiões em sua geografia, conforme descrito na seção anterior, intervalos de IP adicionais devem ser incluídos para as regiões na geografia de fallback de capacidade.

Se sua organização estiver na região Sul do Brasil, sua geografia de fallback de capacidade será Estados Unidos.

Se sua organização estiver na região Oeste da Europa , a geografia de fallback de capacidade será a França.

Nossos intervalos de IP do Mac não estão incluídos nos IPs do Azure acima, pois estão hospedados na nuvem macOS do GitHub. Os intervalos de IP podem ser recuperados usando a API de metadados do GitHub usando as instruções fornecidas aqui.

Exemplo

No exemplo a seguir, os intervalos de endereços IP do agente hospedado para uma organização na região Oeste dos EUA são recuperados do arquivo semanal. Como a região Oeste dos EUA está no Estados Unidos geografia, os endereços IP para todas as regiões no Estados Unidos geografia estão incluídos. Neste exemplo, os endereços IP são gravados no console.

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace WeeklyFileIPRanges
{
    class Program
    {
        // Path to the locally saved weekly file
        const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20210823.json";

        static void Main(string[] args)
        {
            // United States geography has the following regions:
            // Central US, East US, East US 2, North Central US, 
            // South Central US, West Central US, West US, West US 2
            // This list is accurate as of 8/26/2021
            List<string> USGeographyRegions = new List<string>
            {
                "centralus",
                "eastus",
                "eastus2",
                "northcentralus",
                "southcentralus",
                "westcentralus",
                "westus",
                "westus2"
            };

            // Load the weekly file
            JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
            JArray values = (JArray)weeklyFile["values"];

            foreach (string region in USGeographyRegions)
            {
                string azureCloudRegion = $"AzureCloud.{region}";
                Console.WriteLine(azureCloudRegion);

                var ipList =
                    from v in values
                    where (string)v["name"] == azureCloudRegion
                    select v["properties"]["addressPrefixes"];

                foreach (var ip in ipList.Children())
                {
                    Console.WriteLine(ip);
                }
            }
        }
    }
}

Marcas de serviço

Os agentes hospedados pela Microsoft não podem ser listados por marcas de serviço. Se você estiver tentando conceder aos agentes hospedados acesso aos seus recursos, precisará seguir o método de listagem de permissões do intervalo de IP.

Segurança

Os agentes hospedados pela Microsoft são executados na plataforma segura do Azure. No entanto, você deve estar ciente das seguintes considerações de segurança.

  • Embora os agentes hospedados pela Microsoft sejam executados na rede pública do Azure, eles não recebem endereços IP públicos. Portanto, as entidades externas não podem ter como destino agentes hospedados pela Microsoft.
  • Os agentes hospedados pela Microsoft são executados em VMs individuais, que são re-imageadas após cada execução. Cada agente é dedicado a uma única organização e cada VM hospeda apenas um único agente.
  • Há vários benefícios para executar seu pipeline em agentes hospedados pela Microsoft, de uma perspectiva de segurança. Se você executar código não confiável em seu pipeline, como contribuições de bifurcações, é mais seguro executar o pipeline em agentes hospedados pela Microsoft do que em agentes auto-hospedados que residem em sua rede corporativa.
  • Quando um pipeline precisa acessar seus recursos corporativos por trás de um firewall, você precisa permitir o intervalo de endereços IP para a geografia do Azure. Isso pode aumentar sua exposição, pois o intervalo de endereços IP é bastante grande e, como os computadores nesse intervalo também podem pertencer a outros clientes. A melhor maneira de evitar isso é evitar a necessidade de acessar recursos internos.
  • As imagens hospedadas não estão em conformidade com os parâmetros de comparação de proteção de CIS. Para usar imagens protegidas por CIS, você deve criar agentes auto-hospedados ou agentes de conjunto de dimensionamento.

Funcionalidades e limitações

Agentes hospedados pela Microsoft:

  • Tenha o software acima. Você também pode adicionar software durante sua compilação ou versão usando tarefas do instalador de ferramentas.
    • Você obtém um agente recém-criado para cada trabalho em seu pipeline.
  • Forneça 10 GB de armazenamento para suas saídas de origem e build.
  • Forneça uma camada gratuita:
    • Projeto público: 10 trabalhos paralelos gratuitos hospedados pela Microsoft que podem ser executados por até 360 minutos (6 horas) cada vez, sem limite geral de tempo por mês. Entre em contato conosco para aumentar seus limites de camadas gratuitas.
    • Projeto privado: um trabalho paralelo gratuito que pode ser executado por até 60 minutos cada vez, até que você tenha usado 1.800 minutos (30 horas) por mês. Você pode pagar por capacidade adicional por trabalho paralelo. Trabalhos paralelos pagos removem o limite de tempo mensal e permitem que você execute cada trabalho por até 360 minutos (6 horas). Compre trabalhos paralelos hospedados pela Microsoft.
    • Ao criar uma nova organização do Azure DevOps, você não recebe essas concessões gratuitas por padrão. Para solicitar a concessão gratuita para projetos públicos ou privados, envie uma solicitação.
  • Executar em máquinas virtuais de uso geral do Microsoft Azure Standard_DS2_v2
  • Executar como administrador no Windows e um usuário sudo sem senha no Linux
  • (Somente Linux) Executar etapas em um cgroup que oferece 6 GB de memória física e 13 GB de memória total

Os agentes hospedados pela Microsoft não oferecem:

  • A capacidade de se conectar remotamente.
  • A capacidade de remover artefatos para um compartilhamento de arquivos UNC.
  • A capacidade de unir computadores diretamente à sua rede corporativa.
  • A capacidade de obter computadores de build maiores ou mais poderosos.
  • A capacidade de pré-carregar software personalizado. Você pode instalar o software durante uma execução de pipeline, como por meio de tarefas do instalador de ferramentas ou em um script.
  • Vantagens potenciais de desempenho que você pode obter usando agentes auto-hospedados que podem iniciar e executar builds mais rapidamente. Saiba mais
  • A capacidade de executar builds XAML.

Se os agentes hospedados pela Microsoft não atenderem às suas necessidades, você poderá implantar seus próprios agentes auto-hospedados ou usar agentes do conjunto de dimensionamento.

Perguntas frequentes

Como posso ver qual software está incluído em uma imagem?

Você pode ver o software instalado para cada agente hospedado escolhendo o link software incluído na tabela Software .

Como a Microsoft escolhe o software e as versões a serem colocadas na imagem?

Mais informações sobre as versões do software incluídas nas imagens podem ser encontradas em Diretrizes para o que está instalado.

Quando as imagens são atualizadas?

Normalmente, as imagens são atualizadas semanalmente. Você pode verificar os selos de status que estão no formato 20200113.x em que a primeira parte indica a data em que a imagem foi atualizada.

O que posso fazer se o software necessário for removido ou substituído por uma versão mais recente?

Você pode nos informar arquivando um problema do GitHub escolhendo os links de Software Incluído na tabela Usar um agente hospedado pela Microsoft .

Você também pode usar um agente auto-hospedado que inclui as versões exatas do software de que você precisa. Para obter mais informações, consulte agentes auto-hospedados.

E se eu precisar de uma máquina maior com mais energia de processamento, memória ou espaço em disco?

Não é possível aumentar a memória, a energia de processamento ou o espaço em disco para agentes hospedados pela Microsoft, mas você pode usar agentes auto-hospedados ou agentes de conjunto de dimensionamento hospedados em computadores com suas especificações desejadas.

Não consigo selecionar um agente hospedado pela Microsoft e não consigo enfileirar meu build ou implantação. O que devo fazer?

Os agentes hospedados pela Microsoft só estão disponíveis no Azure Pipelines e não no TFS ou Azure DevOps Server.

Por padrão, todos os colaboradores do projeto em uma organização têm acesso aos agentes hospedados pela Microsoft. No entanto, o administrador da sua organização pode limitar o acesso de agentes hospedados pela Microsoft para selecionar usuários ou projetos. Peça ao proprietário da sua organização do Azure DevOps para conceder permissão para usar um agente hospedado pela Microsoft. Consulte a segurança do pool de agentes.

Meus pipelines em execução em agentes hospedados pela Microsoft levam mais tempo para serem concluídos. Como posso acelerá-los?

Se o pipeline se tornou mais lento recentemente, examine nossa página de status para quaisquer interrupções. Podemos estar tendo problemas com nosso serviço. Ou então, examine as alterações feitas em seu código de aplicativo ou pipeline. O tamanho do repositório durante o check-out pode ter aumentado, você pode estar carregando artefatos maiores ou pode estar executando mais testes.

Se você estiver apenas configurando um pipeline e estiver comparando o desempenho de agentes hospedados pela Microsoft com seu computador local ou um agente auto-hospedado, observe as especificações do hardware que usamos para executar seus trabalhos. Não é possível fornecer máquinas maiores ou poderosas. Você pode considerar o uso de agentes auto-hospedados ou agentes de conjunto de dimensionamento se esse desempenho não for aceitável.

Preciso de mais agentes. O que posso fazer?

Todas as organizações do Azure DevOps recebem vários trabalhos paralelos gratuitos para projetos de software livre e um trabalho paralelo gratuito e minutos limitados por mês para projetos privados. Se você precisar de minutos adicionais ou trabalhos paralelos para seu projeto de software livre, entre em contato com o suporte. Se você precisar de minutos adicionais ou trabalhos paralelos para seu projeto privado, poderá comprar mais.

Meu pipeline é bem-sucedido no agente auto-hospedado, mas falha em agentes hospedados pela Microsoft. O que devo fazer?

Seu agente auto-hospedado provavelmente tem todas as dependências certas instaladas nele, enquanto as mesmas dependências, ferramentas e software não estão instalados em agentes hospedados pela Microsoft. Primeiro, examine cuidadosamente a lista de softwares instalados em agentes hospedados pela Microsoft seguindo o link para software incluído na tabela acima. Em seguida, compare isso com o software instalado em seu agente auto-hospedado. Em alguns casos, os agentes hospedados pela Microsoft podem ter as ferramentas necessárias (por exemplo, Visual Studio), mas todos os componentes opcionais necessários podem não ter sido instalados. Se você encontrar diferenças, terá duas opções:

  • Você pode criar um novo problema no repositório, no qual acompanhamos solicitações de software adicional. Entrar em contato com o suporte não ajudará você a configurar novos softwares em agentes hospedados pela Microsoft.

  • Você pode usar agentes auto-hospedados ou agentes do conjunto de dimensionamento. Com esses agentes, você está totalmente no controle das imagens usadas para executar seus pipelines.

Meu build é bem-sucedido no meu computador local, mas falha em agentes hospedados pela Microsoft. O que devo fazer?

Seu computador local provavelmente tem todas as dependências certas instaladas nele, enquanto as mesmas dependências, ferramentas e software não estão instalados em agentes hospedados pela Microsoft. Primeiro, examine cuidadosamente a lista de softwares instalados em agentes hospedados pela Microsoft seguindo o link para software incluído na tabela acima. Em seguida, compare isso com o software instalado em seu computador local. Em alguns casos, os agentes hospedados pela Microsoft podem ter as ferramentas necessárias (por exemplo, Visual Studio), mas todos os componentes opcionais necessários podem não ter sido instalados. Se você encontrar diferenças, terá duas opções:

  • Você pode criar um novo problema no repositório, no qual acompanhamos solicitações de software adicional. Essa é a sua melhor aposta para instalar o novo software. Entrar em contato com o suporte não ajudará você a configurar novos softwares em agentes hospedados pela Microsoft.

  • Você pode usar agentes auto-hospedados ou agentes do conjunto de dimensionamento. Com esses agentes, você está totalmente no controle das imagens usadas para executar seus pipelines.

Meu pipeline falha com o erro: "sem espaço no dispositivo".

Os agentes hospedados pela Microsoft têm apenas 10 GB de espaço em disco disponível para executar o trabalho. Esse espaço é consumido quando você faz check-out do código-fonte, quando baixa pacotes, quando baixa imagens do Docker ou quando produz arquivos intermediários. Infelizmente, não podemos aumentar o espaço livre disponível em imagens hospedadas pela Microsoft. Você pode reestruturar seu pipeline para que ele possa caber nesse espaço. Ou você pode considerar o uso de agentes auto-hospedados ou agentes de conjunto de dimensionamento.

Meu pipeline em execução em agentes hospedados pela Microsoft requer acesso a servidores em nossa rede corporativa. Como obter uma lista de endereços IP para permitir em nosso firewall?

Confira os intervalos de IP do agente de seção

Nosso pipeline em execução em agentes hospedados pela Microsoft não consegue resolver o nome de um servidor em nossa rede corporativa. Como podemos corrigir isso?

Se você se referir ao servidor pelo nome DNS, verifique se o servidor está acessível publicamente na Internet por meio de seu nome DNS. Se você se referir ao servidor por seu endereço IP, verifique se o endereço IP está acessível publicamente na Internet. Em ambos os casos, verifique se qualquer firewall entre os agentes e sua rede corporativa tem os intervalos de IP do agente permitidos .

Estou recebendo um erro de autorização de IP SAS de uma conta de Armazenamento do Azure

Se você receber um código de erro SAS, provavelmente será porque os intervalos de endereços IP dos agentes hospedados pela Microsoft não são permitidos devido às suas regras de Armazenamento do Azure. Há algumas soluções alternativas:

  1. Gerencie as regras de rede IP para sua conta de Armazenamento do Azure e adicione os intervalos de endereços IP para seus agentes hospedados.
  2. No pipeline, use a CLI do Azure para atualizar o conjunto de regras de rede para sua conta de Armazenamento do Azure antes de acessar o armazenamento e, em seguida, restaure o conjunto de regras anterior.
  3. Use agentes auto-hospedados ou agentes de conjunto de dimensionamento.

Como posso selecionar manualmente versões de ferramentas no agente macOS hospedado?

Xamarin

O agente macOS hospedado armazena versões do SDK do Xamarin e as versões mono associadas como um conjunto de symlinks para locais do SDK do Xamarin que estão disponíveis por um único symlink de pacote.

Para selecionar manualmente uma versão do SDK do Xamarin a ser usada no agente macOS hospedado , execute o seguinte comando bash antes da tarefa de build do Xamarin como parte de seu build, especificando o pacote de versões do Symlink para Xamarin de que você precisa.

/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"

A lista de todas as versões e symlinks do SDK do Xamarin disponíveis pode ser encontrada na documentação dos agentes:

Esse comando não seleciona a versão Mono além do SDK do Xamarin. Para selecionar manualmente uma versão mono, confira as instruções abaixo.

Caso você esteja usando uma versão não padrão do Xcode para criar seus aplicativos Xamarin.iOS ou Xamarin.Mac, você deverá executar essa linha de comando:

/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"

Onde $(xcodeRoot) = /Applications/Xcode_13.2.app

As versões Xcode no pool de agentes do macOS hospedado podem ser encontradas aqui.

Xcode

Se você usar a tarefa Xcode incluída no Azure Pipelines e no TFS, poderá selecionar uma versão do Xcode nas propriedades dessa tarefa. Caso contrário, para definir manualmente a versão do Xcode a ser usada no pool de agentes do macOS hospedado , antes xcodebuild da tarefa de build, execute esta linha de comando como parte do build, substituindo o número da versão Xcode 13.2 conforme necessário:

/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"

As versões Xcode no pool de agentes do macOS hospedado podem ser encontradas aqui.

Esse comando não funciona para aplicativos Xamarin. Para selecionar manualmente uma versão do Xcode para criar aplicativos Xamarin, confira as instruções acima.

Mono

Para selecionar manualmente uma versão Mono a ser usada no pool de agentes do macOS hospedado , execute esse script em cada trabalho de sua compilação antes da tarefa de build mono, especificando o symlink com a versão Mono necessária (lista de todos os symlinks disponíveis podem ser encontrados na seção Xamarin acima):

SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"

Vídeos