Agentes hospedados pela Microsoft

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

Os agentes hospedados pela Microsoft só estão disponíveis com os Serviços Azure DevOps, que estão hospedados na nuvem. Não é possível utilizar agentes hospedados pela Microsoft ou o conjunto de agentes Azure Pipelines com TFS ou Azure DevOps Server no local. Com estas versões no local, deve usar agentes auto-hospedados.

Importante

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

Para visualizar o conteúdo disponível para a sua plataforma, certifique-se de que seleciona a versão correta deste artigo a partir do seletor de versão que se encontra acima da tabela de conteúdos. O suporte de funcionalidade difere dependendo se está a trabalhar a partir da Azure DevOps Services ou uma versão no local de Azure DevOps Server, renomeada a partir do Team Foundation Server (TFS).
Para saber qual a versão no local que está a usar, veja que plataforma/versão estou a usar?

Se os seus oleodutos estiverem em Azure Pipelines, então tem uma opção conveniente para executar os seus trabalhos usando um agente hospedado pela Microsoft. Com os agentes hospedados na Microsoft, a manutenção e as atualizações são cuidadas para si. Cada vez que se faz um oleoduto, obtém-se uma máquina virtual fresca para cada trabalho no oleoduto. A máquina virtual é descartada após uma tarefa (o que significa que qualquer alteração que um trabalho faça para o sistema de ficheiros de máquinas virtuais, como verificar código, não estará disponível para o próximo trabalho). Os agentes hospedados pela Microsoft podem executar trabalhos diretamente no VM ou num recipiente.

A Azure Pipelines fornece um pool de agentes predefinidos chamado Azure Pipelines com agentes hospedados pela Microsoft.

Para muitas equipas esta é a forma mais simples de gerir os seus trabalhos. Pode experimentá-lo primeiro e ver se funciona para a sua construção ou implantação. Se não, pode usar um agente auto-hospedado.

Dica

Pode tentar um agente hospedado pela Microsoft sem custos.

Software

O azure Pipelines agent pool oferece várias imagens de máquinas virtuais para escolher, cada uma incluindo uma ampla gama de ferramentas e software.

Imagem Especificação clássica do agente editor Etiqueta de imagem YAML VM Software incluído
Windows Server 2022 com Visual Studio 2022 janelas-2022 windows-latest OU windows-2022 Ligação
Windows Server 2019 com Visual Studio 2019 windows-2019 windows-2019 Ligação
Pré-visualização Ubuntu 22.04 ubuntu-22.04 ubuntu-22.04 Ligação
Ubuntu 20.04 ubuntu-20.04 ubuntu-latest OU ubuntu-20.04 Ligação
Ubuntu 18.04 ubuntu-18.04 ubuntu-18.04 Ligação
macOS 12 Monterey macOS-12 macOS-12 Ligação
macOS 11 Big Sur macOS-11 macOS-latest OU macOS-11 Ligação
macOS X Catalina 10.15 macOS-10.15 macOS-10.15 Ligação

A imagem de agente padrão para oleodutos de construção clássica é o Windows-2019, e a imagem de agente padrão para os oleodutos de construção YAML é ubuntu-latest. Para mais informações, consulte uma piscina no seu oleoduto.

Pode ver o software instalado para cada agente hospedado, escolhendo o link de Software Incluído na tabela. Ao utilizar imagens do macOS, pode selecionar manualmente a partir das versões da ferramenta. Veja abaixo.

Nota

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

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

A imagem acolhida em Ubuntu 16.04 foi removida em setembro de 2021.

O Windows Server 2016 com a imagem do Visual Studio 2017 foi depreciado e será retirado a 30 de junho de 2022. Leia esta publicação de blog sobre como identificar os oleodutos usando imagens prevadizadas.

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

  • macOS X Mojave 10.14 (macOS-10.14)

Em março de 2020, removemos os seguintes Oleodutos Azure hospedados imagens:

  • Windows Server 2012R2 com Visual Studio 2015 (vs2015-win2012r2)
  • macOS X High Sierra 10.13 (macOS-10.13)
  • Núcleo do Servidor do Windows 1803 (win1803)

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

Para obter mais informações e instruções sobre como atualizar os seus oleodutos que utilizam essas imagens, consulte remover imagens antigas em piscinas hospedadas em Azure Pipelines.

Nota

A piscina azure pipelines hospedada substitui as piscinas anteriores hospedadas que tinham nomes que mapearam para as imagens correspondentes. Quaisquer trabalhos que tenha sofrido nas piscinas anteriores são automaticamente redirecionados para a imagem correta na nova piscina hospedada Azure Pipelines. Em algumas circunstâncias, você ainda pode ver os nomes antigos da piscina, mas nos bastidores os trabalhos hospedados são executados usando a piscina Azure Pipelines. Para obter mais informações sobre esta atualização, consulte as notas de lançamento da piscina únicas a partir das notas de lançamento do Sprint 154 de julho de 2019.

Importante

Para solicitar a instalação de software adicional em agentes hospedados pela Microsoft, não crie um pedido de feedback sobre este documento ou abra um bilhete de suporte. Em vez disso, abra um problema no nosso repositório, onde gerimos os scripts para gerar várias imagens.

Use um agente hospedado na Microsoft

Nos gasodutos YAML, se não especificar uma piscina, os gasodutos ficarão por defeito na piscina do agente Azure Pipelines. Basta especificar qual a imagem virtual da máquina que pretende utilizar.

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

Nota

A especificação de uma piscina pode ser feita a vários níveis num ficheiro YAML. Se notar que o seu oleoduto não está a funcionar na imagem esperada, certifique-se de que verifica a especificação da piscina no pipeline, estágio e níveis de trabalho.

Evite referências codificadas

Quando utilizar um agente hospedado na Microsoft, utilize sempre variáveis para se referir ao ambiente de construção e aos recursos de agente. Por exemplo, não codificar a letra de unidade ou a pasta que contém o repositório. A disposição precisa dos agentes alojados está sujeita a alterações sem aviso prévio.

Hardware

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

Os agentes que executam imagens do macOS são ateados em Mac pros com um CPU de 3 núcleos, 14 GB de RAM e 14 GB de espaço em disco SSD. Estes agentes correm sempre nos EUA, independentemente da localização da sua organização Azure DevOps. Se a soberania de dados é importante para si e se a sua organização não estiver nos EUA, então não deve utilizar imagens do macOS. Saiba mais.

Todas estas máquinas têm pelo menos 10 GB de espaço livre em disco disponível para os seus oleodutos funcionarem. Este espaço gratuito é consumido quando o seu pipeline verifica o código fonte, descarrega pacotes, puxa imagens de estivadores ou gera ficheiros intermédios.

Importante

Não podemos honrar os pedidos para aumentar o espaço em disco em agentes hospedados pela Microsoft, ou para a disponibilização de máquinas mais poderosas. Se as especificações dos agentes hospedados pela Microsoft não satisfaçam as suas necessidades, então deve considerar agentes auto-hospedados ou agentes de conjunto de escala.

Rede

Em algumas configurações, poderá necessitar de saber o alcance dos endereços IP onde os agentes são implantados. Por exemplo, se precisar de conceder aos agentes hospedados acesso através de uma firewall, pode desejar restringir esse acesso através do endereço IP. Como a Azure DevOps utiliza a rede global Azure, as gamas IP variam ao longo do tempo. Publicamos um ficheiro semanal JSON que lista gamas IP para datacenters Azure, divididos por região. Este ficheiro é atualizado semanalmente com novas gamas de IP planeadas. As novas gamas de IP tornam-se eficazes na semana seguinte. Recomendamos que volte a verificar com frequência (pelo menos uma vez por semana) para garantir que mantém uma lista atualizada. Se os trabalhos de agente começarem a falhar, um primeiro passo para resolver problemas é certificar-se de que a sua configuração corresponde à lista mais recente de endereços IP. Os intervalos de endereço IP para os agentes hospedados estão listados no ficheiro semanal em , AzureCloud.<region>como AzureCloud.westus para a região dos EUA Ocidental.

Os seus agentes anfitriões correm na mesma geografia azul que a sua organização. Cada geografia contém uma ou mais regiões. Embora o seu agente possa correr na mesma região que a sua organização, não é garantido fazê-lo. Para obter a lista completa de possíveis gamas DEP para o seu agente, deve utilizar as gamas IP de todas as regiões que estão contidas na sua geografia. Por exemplo, se a sua organização estiver localizada na Estados Unidos geografia, deve utilizar as gamas IP para todas as regiões dessa geografia.

Para determinar a sua geografia, navegue para obter a https://dev.azure.com/<your_organization>/_settings/organizationOverviewsua região e encontre a geografia associada a partir da tabela de geografia azulada. Depois de identificar a sua geografia, utilize as gamas IP a partir do arquivo semanal para todas as regiões dessa geografia.

Importante

Não é possível utilizar ligações privadas como o ExpressRoute ou a VPN para ligar agentes hospedados pela Microsoft à sua rede corporativa. O tráfego entre os agentes hospedados pela Microsoft e os seus servidores será por rede pública.

Para identificar as possíveis gamas ip para agentes hospedados na Microsoft

  1. Identifique a região para a sua organização em configurações da Organização.
  2. Identifique a Geografia azul para a região da sua organização.
  3. Mapear os nomes das regiões na sua geografia para o formato utilizado no ficheiro semanal, seguindo o formato de AzureCloud.<region>, como AzureCloud.westus. Pode mapear os nomes das regiões da lista de Geografia Azure para o formato utilizado no ficheiro semanal, revendo os nomes da região passados para o construtor das regiões definidas no código fonte para a classe Região, a partir das Bibliotecas de Gestão do Azure para .NET.

    Nota

    Uma vez que não existe API nas Bibliotecas de Gestão do Azure para .NET para listar as regiões para uma geografia, deve enumerar manualmente como mostrado no exemplo seguinte.

  4. Recupere os endereços IP para todas as regiões da sua geografia a partir do ficheiro semanal. Se a sua região for o Brasil Sul ou Oeste da Europa, deve incluir gamas ip adicionais com base na sua geografia de recuo, como descrito na nota seguinte.

Nota

Devido às restrições de capacidade, algumas organizações nas regiões do Sul ou do Oeste daEuropa podem ocasionalmente ver os seus agentes alojados localizados fora da sua geografia esperada. Nestes casos, para além da inclusão das gamas de PI para todas as regiões da sua geografia, tal como descrito na secção anterior, devem ser incluídas gamas ip adicionais para as regiões na geografia do recuo da capacidade.

Se a sua organização está na região do Brasil Sul, a sua capacidade de reversão de capacidade é Estados Unidos.

Se a sua organização está na região da Europa Ocidental , a capacidade de redução da capacidade é a França.

As nossas gamas Mac IP não estão incluídas nos IPs Azure acima, uma vez que estão hospedadas na nuvem macOS do GitHub. As gamas IP podem ser recuperadas utilizando a API de metadados GitHub utilizando as instruções fornecidas aqui.

Exemplo

No exemplo seguinte, os intervalos de endereço IP do agente hospedado para uma organização na região oeste dos EUA são recuperados a partir do ficheiro semanal. Uma vez que a região oeste dos EUA está na Estados Unidos geografia, os endereços IP para todas as regiões da Estados Unidos geografia estão incluídos. Neste exemplo, os endereços IP são escritos para a consola.

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);
                }
            }
        }
    }
}

Etiquetas de serviço

Os agentes hospedados na Microsoft não podem ser listados por etiquetas de serviço. Se estiver a tentar conceder aos agentes hospedados acesso aos seus recursos, terá de seguir o método de listagem IP.

Segurança

Os agentes hospedados pela Microsoft funcionam na plataforma Azure segura. No entanto, deve estar ciente das seguintes considerações de segurança.

  • Embora os agentes hospedados pela Microsoft sejam executados na rede pública Azure, não são atribuídos endereços IP públicos. Assim, as entidades externas não podem visar agentes hospedados pela Microsoft.
  • Os agentes hospedados pela Microsoft são executados em VMs individuais, que são re-imagem após cada execução. Cada agente é dedicado a uma única organização, e cada VM acolhe apenas um agente.
  • Existem vários benefícios para executar o seu pipeline em agentes hospedados pela Microsoft, numa perspetiva de segurança. Se executar códigos não fidedidos no seu oleoduto, como contribuições de garfos, é mais seguro executar o oleoduto em agentes hospedados pela Microsoft do que em agentes auto-hospedados que residem na sua rede corporativa.
  • Quando um oleoduto precisa de aceder aos seus recursos corporativos por detrás de uma firewall, tem de permitir a gama de endereços IP para a geografia Azure. Isto pode aumentar a sua exposição, uma vez que a gama de endereços IP é bastante grande e uma vez que as máquinas desta gama também podem pertencer a outros clientes. A melhor forma de o evitar é evitar a necessidade de aceder aos recursos internos.
  • As imagens hospedeiras não estão em conformidade com os parâmetros de referência do endurecimento do CIS. Para utilizar imagens endurecidas pelo CIS, tem de criar agentes auto-hospedados ou agentes de escala.

Capacidades e limitações

Agentes hospedados pela Microsoft:

  • Tenha o software acima. Também pode adicionar software durante a sua construção ou libertação utilizando tarefas de instalação de ferramentas.
    • Arranjas um agente recém-fotografado para cada trabalho no teu oleoduto.
  • Forneça 10 GB de armazenamento para a sua fonte e construa saídas.
  • Fornecer um nível livre:
    • Projeto público: 10 empregos paralelos gratuitos hospedados pela Microsoft que podem funcionar até 360 minutos (6 horas) de cada vez, sem limite de tempo total por mês. Contacte-nos para aumentar os seus limites de nível livre.
    • Projeto privado: Um trabalho paralelo gratuito que pode funcionar até 60 minutos de cada vez, até que você use 1.800 minutos (30 horas) por mês. Pode pagar por uma capacidade adicional por trabalho paralelo. Os trabalhos paralelos pagos eliminam o prazo mensal e permitem executar cada trabalho até 360 minutos (6 horas). Compre trabalhos paralelos hospedados pela Microsoft.
    • Quando cria uma nova organização Azure DevOps, não lhe são concedidas subvenções gratuitas por padrão. Para solicitar a subvenção gratuita para projetos públicos ou privados, apresente um pedido.
  • Executar em Microsoft Azure máquinas virtuais de uso geral Standard_DS2_v2
  • Executar como administrador no Windows e um utilizador sudo sem palavras-passe no Linux
  • (apenas Linux) Passos de execução num 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 ligar remotamente.
  • A capacidade de deixar cair artefactos numa partilha de ficheiros da UNC.
  • A capacidade de juntar máquinas diretamente à sua rede corporativa.
  • A capacidade de obter máquinas de construção maiores ou mais poderosas.
  • A capacidade de pré-carregar software personalizado. Pode instalar software durante uma execução de pipeline, como através de tarefas de instalação de ferramentas ou de um script.
  • Potenciais vantagens de desempenho que poderá obter usando agentes auto-hospedados que podem começar e executar cria mais rapidamente. Saiba mais
  • A capacidade de executar xAML constrói.

Se os agentes hospedados pela Microsoft não satisfaçam as suas necessidades, então pode implementar os seus próprios agentes auto-hospedados ou usar agentes de conjunto de escala.

FAQ

Como posso ver que software está incluído numa imagem?

Pode ver o software instalado para cada agente hospedado, escolhendo o link de Software Incluído na tabela Software .

Como é que a Microsoft escolhe o software e as versões para colocar na imagem?

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

Quando é que as imagens são atualizadas?

As imagens são normalmente atualizadas semanalmente. Pode verificar os crachás de estado que estão no formato 20200113.x onde a primeira parte indica a data em que a imagem foi atualizada.

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

Pode informar-nos ao arquivar um problema do GitHub, escolhendo as ligações de Software Incluído na tabela de agentes hospedado pela Microsoft .

Também pode utilizar um agente auto-hospedado que inclui as versões exatas do software de que necessita. Para mais informações, consulte agentes auto-hospedados.

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

Não podemos aumentar a memória, o poder de processamento ou o espaço do disco para agentes hospedados na Microsoft, mas pode utilizar agentes auto-hospedados ou agentes de conjunto de escala alojados em máquinas com as especificações desejadas.

Não posso selecionar um agente hospedado pela Microsoft e não posso fazer fila para a minha construção ou implantação. O que devo fazer?

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

Por padrão, todos os contribuintes de projetos de uma organização têm acesso aos agentes hospedados pela Microsoft. Mas, o administrador da sua organização pode limitar o acesso de agentes hospedados pela Microsoft para selecionar utilizadores ou projetos. Peça ao proprietário da sua organização Azure DevOps que lhe conceda permissão para usar um agente hospedado na Microsoft. Consulte a segurança da piscina do agente.

Os meus oleodutos a funcionar com agentes hospedados pela Microsoft demoram mais tempo a ser concluídos. Como posso acelerá-los?

Se o seu oleoduto se tornou recentemente mais lento, reveja a nossa página de estado para eventuais interrupções. Podemos estar tendo problemas com o nosso serviço. Ou então, reveja quaisquer alterações que tenha feito no código de aplicação ou no pipeline. O seu tamanho de repositório durante o check-out pode ter aumentado, pode estar a carregar artefactos maiores, ou pode estar a fazer mais testes.

Se está apenas a configurar um oleoduto e está a comparar o desempenho dos agentes hospedados pela Microsoft com a sua máquina local ou um agente auto-hospedado, então note as especificações do hardware que utilizamos para executar os seus trabalhos. Não podemos fornecer-lhe máquinas maiores ou poderosas. Pode considerar a utilização de agentes auto-hospedados ou agentes de conjunto de escala se este desempenho não for aceitável.

Preciso de mais agentes. O que posso fazer?

Todas as organizações Azure DevOps são dotadas de vários empregos paralelos gratuitos para projetos de código aberto, e um trabalho paralelo gratuito e minutos limitados todos os meses para projetos privados. Se precisar de minutos adicionais ou trabalhos paralelos para o seu projeto de código aberto, contacte. Se precisar de minutos adicionais ou trabalhos paralelos para o seu projeto privado, então pode comprar mais.

O meu oleoduto tem sucesso em agente auto-hospedado, mas falha em agentes hospedados pela Microsoft. O que devo fazer?

O 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. Em primeiro lugar, reveja cuidadosamente a lista de software instalado nos agentes hospedados pela Microsoft, seguindo a ligação ao software Incluído na tabela acima. Em seguida, compare isso com o software instalado no seu agente auto-hospedado. Em alguns casos, os agentes hospedados pela Microsoft podem ter as ferramentas de que necessita (por exemplo, Visual Studio), mas todos os componentes opcionais necessários podem não ter sido instalados. Se encontrar diferenças, tem duas opções:

  • Pode criar um novo problema no repositório, onde rastreamos pedidos de software adicional. O suporte de contato não o ajudará a configurar um novo software em agentes hospedados pela Microsoft.

  • Pode utilizar agentes auto-hospedados ou agentes de escala. Com estes agentes, você está totalmente no controlo das imagens que são usadas para executar os seus oleodutos.

A minha construção tem sucesso na minha máquina local, mas falha nos agentes hospedados pela Microsoft. O que devo fazer?

A sua máquina 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. Em primeiro lugar, reveja cuidadosamente a lista de software instalado nos agentes hospedados pela Microsoft, seguindo a ligação ao software Incluído na tabela acima. Em seguida, compare isso com o software instalado na sua máquina local. Em alguns casos, os agentes hospedados pela Microsoft podem ter as ferramentas de que necessita (por exemplo, Visual Studio), mas todos os componentes opcionais necessários podem não ter sido instalados. Se encontrar diferenças, tem duas opções:

  • Pode criar um novo problema no repositório, onde rastreamos pedidos de software adicional. Esta é a sua melhor aposta para instalar um novo software. O suporte de contato não o ajudará a configurar um novo software em agentes hospedados pela Microsoft.

  • Pode utilizar agentes auto-hospedados ou agentes de escala. Com estes agentes, você está totalmente no controlo das imagens que são usadas para executar os seus oleodutos.

O meu oleoduto falha com o erro: "não há espaço no dispositivo".

Os agentes alojados na Microsoft têm apenas 10 GB de espaço em disco disponível para executar a tarefa. Este espaço é consumido quando verifica o código fonte, quando descarrega pacotes, quando descarrega imagens do Docker ou quando produz ficheiros intermédios. Infelizmente, não podemos aumentar o espaço gratuito disponível nas imagens hospedadas pela Microsoft. Pode reestruturar o seu oleoduto para que possa caber neste espaço. Ou, pode considerar usar agentes auto-hospedados ou agentes de escala.

O meu oleoduto a funcionar com agentes hospedados pela Microsoft requer acesso a servidores na nossa rede corporativa. Como obtemos uma lista de endereços IP para permitir na nossa firewall?

Consulte as gamas IP da secção Agente

O nosso oleoduto a funcionar com agentes hospedados pela Microsoft é incapaz de resolver o nome de um servidor na nossa rede corporativa. Como podemos resolver isto?

Se se referir ao servidor pelo seu nome DNS, certifique-se de que o seu servidor está acessível ao público na Internet através do seu nome DNS. Se se referir ao seu servidor através do seu endereço IP, certifique-se de que o endereço IP está acessível ao público na Internet. Em ambos os casos, certifique-se de que qualquer firewall entre os agentes e a sua rede corporativa tem as gamas IP do agente permitidas .

Estou a receber um erro de autorização IP da SAS de uma conta de Armazenamento Azure

Se obtém um código de erro SAS, é provável que o endereço IP varia dos agentes hospedados pela Microsoft devido às suas regras de Armazenamento Azure. Há algumas soluções alternativas:

  1. Gerencie as regras da rede IP para a sua conta de Armazenamento Azure e adicione os intervalos de endereço IP para os seus agentes hospedados.
  2. No seu pipeline, utilize o Azure CLI para atualizar as regras de rede para a sua conta de Armazenamento Azure antes de aceder ao armazenamento e, em seguida, restaurar o ruleset anterior.
  3. Utilize agentes auto-hospedados ou agentes de definição de escala.

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

Xamarin

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

Para selecionar manualmente uma versão Xamarin SDK para utilizar no agente macOS hospedado , execute o seguinte comando de bash antes da sua tarefa de construção de Xamarin como parte da sua construção, especificando o pacote de versões Symlink para Xamarin que necessita.

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

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

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

Caso esteja a utilizar uma versão não padrão do Xcode para a construção das suas aplicações Xamarin.iOS ou Xamarin.Mac, deverá ainda executar esta 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 conjunto de agentes do macOS hospedados podem ser encontradas aqui.

Xcode

Se utilizar a tarefa Xcode incluída nos Pipelines Azure e TFS, pode selecionar uma versão do Xcode nas propriedades dessa tarefa. Caso contrário, para definir manualmente a versão Xcode para utilizar no conjunto de agentes do macOS hospedado , antes da sua xcodebuild tarefa de construção, execute esta linha de comando como parte da sua construção, substituindo a versão Xcode número 13.2 conforme necessário:

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

As versões Xcode no conjunto de agentes do macOS hospedados podem ser encontradas aqui.

Este comando não funciona para aplicações Xamarin. Para selecionar manualmente uma versão Xcode para a construção de aplicações Xamarin, consulte as instruções acima.

Mono

Para selecionar manualmente uma versão Mono a utilizar no conjunto de agentes macOS hospedados , execute este script em cada trabalho da sua construção antes da sua tarefa de construção Mono, especificando o symlink com a versão Mono necessária (a lista de todos os symlinks disponíveis pode ser encontrada na secçã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