Agentes hospedado por Microsoft
Azure Pipelines
Los agentes hospedados por Microsoft solo están disponibles con Azure DevOps Services, que se hospeda en la nube. No puede usar agentes hospedados por Microsoft ni el grupo de Azure Pipelines con TFS local o Azure DevOps Server. Con estas versiones locales, debe usar agentes auto-hospedados.
Importante
A fin de ver el contenido disponible para la plataforma, asegúrese de seleccionar la versión correcta de este artículo en el selector de versiones que se encuentra sobre la tabla de contenidos. La compatibilidad con características difiere en función de si se trabaja en Azure DevOps Services o una versión local de Azure DevOps Server, anteriormente denominado Team Foundation Server (TFS).
Vea ¿Qué plataforma o versión estoy usando? para obtener información sobre la versión local que utiliza.
Si las canalizaciones están Azure Pipelines, tiene una opción práctica para ejecutar los trabajos mediante un agente hospedado por Microsoft. Si se usan agentes hospedados por Microsoft, las actualizaciones y el mantenimiento se realizarán automáticamente. Cada vez que ejecuta una canalización, obtiene una máquina virtual nueva para cada trabajo de la canalización. La máquina virtual se descarta después de un trabajo. Los agentes hospedados por Microsoft pueden ejecutar trabajos directamente en la máquina virtual o en un contenedor.
Azure Pipelines proporciona un grupo de agentes predefinido denominado Azure Pipelines con agentes hospedados por Microsoft.
Para muchos equipos, esta es la manera más sencilla de ejecutar los trabajos. Puede probarlo en primer lugar y ver si funciona para la compilación o la implementación. Si no funciona, puede usar un agente autohospedado.
Sugerencia
Puede probar un agente hospedado por Microsoft sin cargo alguno.
Software
El Azure Pipelines agente ofrece varias imágenes de máquina virtual entre las que elegir, cada una de las cuales incluye una amplia gama de herramientas y software.
| Imagen | Especificación del agente del editor clásico | Etiqueta de imagen de máquina virtual DE YAML | Software incluido |
|---|---|---|---|
| Windows Server 2022 con Visual Studio 2022 | windows-2022 | windows-2022 |
Vínculo |
| Windows Server 2019 con Visual Studio 2019 | windows-2019 | windows-latest O windows-2019 |
Vínculo |
| Ubuntu 20.04 | ubuntu-20.04 | ubuntu-latest O ubuntu-20.04 |
Vínculo |
| Ubuntu 18.04 | ubuntu-18.04 | ubuntu-18.04 |
Vínculo |
| macOS 11 Big Sur | macOS-11 | macOS-latest O macOS-11 |
Vínculo |
| macOS X Catalina 10.15 | macOS-10.15 | macOS-10.15 |
Vínculo |
| macOS X Mojave 10.14 | macOS-10.14 | macOS-10.14 |
Vínculo |
La imagen de agente predeterminada para las canalizaciones de compilación clásicas es windows-2019y la imagen de agente predeterminada para las canalizaciones de compilación de YAML es . Para obtener más información, consulte Elección de un grupo y un agente en la canalización.
Para ver el software instalado para cada agente hospedado, elija el vínculo Software incluido en la tabla. Al usar imágenes de macOS, puede seleccionar manualmente entre las versiones de la herramienta. Vea a continuación.
Nota:
La imagen hospedada de Ubuntu 16.04 se quitó en septiembre de 2021.
El Windows Server 2016 con Visual Studio imagen de 2017 está en desuso.
En marzo de 2020, se quitaron las siguientes imágenes Azure Pipelines hospedadas:
- Windows Server 2012R2 con Visual Studio 2015 (
vs2015-win2012r2) - macOS X High Sierra 10.13 (
macOS-10.13) - Windows Server Core 1803 (
win1803)
Se recomienda a los clientes migrar vs2017-win2016 a , o a un agente macOS-10.14vs2017-win2016 respectivamente.
Para obtener más información e instrucciones sobre cómo actualizar las canalizaciones que usan esas imágenes, consulte Eliminación de imágenes anteriores en Azure Pipelines grupos hospedados.
Nota:
El Azure Pipelines hospedado reemplaza a los grupos hospedados anteriores que tenían nombres asignados a las imágenes correspondientes. Todos los trabajos que tenía en los grupos hospedados anteriores se redirigen automáticamente a la imagen correcta en el nuevo grupo Azure Pipelines hospedado. En algunas circunstancias, es posible que todavía vea los nombres de grupo antiguos, pero en segundo plano los trabajos hospedados se ejecutan mediante el grupo de Azure Pipelines servidor. Para obtener más información sobre esta actualización, vea las notas de la versión Grupo hospedado único de las notas de la versión 1 de julio de 2019- Sprint 154.
Importante
Para solicitar que se instale software adicional en agentes hospedados por Microsoft, no cree una solicitud de comentarios en este documento ni abra una vale de soporte técnico. En su lugar, abra un problema en nuestro repositorio, donde administramos los scripts para generar varias imágenes.
Uso de un agente hospedado por Microsoft
En las canalizaciones YAML, si no especifica un grupo, las canalizaciones tendrán como valor predeterminado el Azure Pipelines agente. Solo tiene que especificar qué imagen de máquina virtual desea 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
Nota:
La especificación de un grupo se puede realizar en varios niveles en un archivo YAML. Si observa que la canalización no se está ejecutando en la imagen esperada, asegúrese de comprobar la especificación del grupo en los niveles de canalización, fase y trabajo.
Evitar referencias codificadas de forma fuerte
Cuando use un agente hospedado por Microsoft, use siempre variables para hacer referencia al entorno de compilación y a los recursos del agente. Por ejemplo, no codifite de forma hard-code la letra de unidad o la carpeta que contiene el repositorio. El diseño preciso de los agentes hospedados está sujeto a cambios sin previo aviso.
Hardware
Los agentes hospedados por Microsoft que ejecutan imágenes de Windows e Linux se aprovisionan en máquinas virtuales de uso general de Azure con una CPU de 2 núcleos, 7 GB de RAM y 14 GB de espacio en disco SSD. Estas máquinas virtuales se encuentran en la misma ubicación geográfica que la Azure DevOps organización.
Los agentes que ejecutan imágenes de macOS se aprovisionan en profesionales de Mac con una CPU de 3 núcleos, 14 GB de RAM y 14 GB de espacio en disco SSD. Estos agentes siempre se ejecutan en Estados Unidos independientemente de la ubicación de la Azure DevOps organización. Si la soberanía de datos es importante para usted y si su organización no está en EE. UU., no debe usar imágenes de macOS. Más información.
Todas estas máquinas tienen al menos 10 GB de espacio libre en disco disponible para que las canalizaciones se ejecuten. Este espacio libre se consume cuando la canalización comprueba el código fuente, descarga paquetes, extrae imágenes de Docker o genera archivos intermedios.
Importante
No se pueden respetar las solicitudes para aumentar el espacio en disco en los agentes hospedados por Microsoft o para aprovisionar máquinas más eficaces. Si las especificaciones de los agentes hospedados por Microsoft no satisfacen sus necesidades, debe considerar agentes auto hospedados o agentes de conjunto de escalado.
Funciones de red
En algunas configuraciones, es posible que necesite conocer el intervalo de direcciones IP donde se implementan los agentes. Por ejemplo, si necesita conceder acceso a los agentes hospedados a través de un firewall, puede que desee restringir ese acceso por dirección IP. Dado Azure DevOps usa la red global de Azure, los intervalos IP varían con el tiempo. Publicamos un archivo JSON semanal que enumera los intervalos IP de los centros de datos de Azure, desglosados por región. Este archivo se actualiza semanalmente con nuevos intervalos IP planeados. Los nuevos intervalos IP se hacen efectivos la semana siguiente. Se recomienda que vuelva a consultar con frecuencia (al menos una vez a la semana) para asegurarse de mantener una lista actualizada. Si los trabajos del agente comienzan a producir un error, un primer paso clave para solucionar problemas es asegurarse de que la configuración coincide con la lista más reciente de direcciones IP. Los intervalos de direcciones IP de los agentes hospedados se muestran en el archivo semanal en , como para AzureCloud.<region> la región Oeste de AzureCloud.westus EE. UU.
Los agentes hospedados se ejecutan en la misma ubicación geográfica de Azure que la organización. Cada geografía contiene una o varias regiones. Aunque el agente puede ejecutarse en la misma región que la organización, no se garantiza que lo haga. Para obtener la lista completa de posibles intervalos IP para el agente, debe usar los intervalos IP de todas las regiones contenidas en la geografía. Por ejemplo, si su organización se encuentra en Estados Unidos geography, debe usar los intervalos IP para todas las regiones de esa geografía.
Para determinar la geografía, vaya a , obtenga su región y busque la geografía https://dev.azure.com/<your_organization>/_settings/organizationOverview asociada en la tabla de geografía de https://dev.azure.com/<your_organization>/_settings/organizationOverview Una vez que haya identificado la geografía, use los intervalos IP del archivo semanal para todas las regiones de esa geografía.
Importante
No puede usar conexiones privadas como ExpressRoute o VPN para conectar agentes hospedados por Microsoft a la red corporativa. El tráfico entre los agentes hospedados por Microsoft y los servidores se realizará a través de la red pública.
Para identificar los posibles intervalos IP de los agentes hospedados por Microsoft
- Identifique la región de su organización en Configuración de la organización.
- Identifique la geografía de Azure para la región de su organización.
- Asigne los nombres de las regiones de la geografía al formato usado en el archivo semanal, siguiendo el formato
AzureCloud.<region>de , comoAzureCloud.westus. Puede asignar los nombres de las regiones de la lista Geografía de Azure al formato que se usa en el archivo semanal revisando los nombres de región pasados al constructor de las regiones definidas en el código fuente de la clase Región, desde bibliotecas de administración de Azure para .NET.Nota:
Dado que no hay ninguna API en las bibliotecas de administración de Azure para .NET para enumerar las regiones de una geografía, debe enumerarlos manualmente, como se muestra en el ejemplo siguiente.
- Recupere las direcciones IP de todas las regiones de la geografía del archivo semanal. Si su región es Sur de Brasil u Oeste de Europa,debe incluir intervalos IP adicionales basados en la geografía de reserva, como se describe en la nota siguiente.
Nota:
Debido a las restricciones de capacidad, algunas organizaciones de las regiones Sur de Brasil o Oeste de Europa pueden ver ocasionalmente sus agentes hospedados ubicados fuera de su geografía esperada. En estos casos, además de incluir los intervalos IP para todas las regiones de la geografía, como se describe en la sección anterior, se deben incluir intervalos IP adicionales para las regiones de la zona geográfica de reserva de capacidad.
Si su organización se encuentra en la región Sur de Brasil, la zona geográfica de reserva de capacidad Estados Unidos.
Si su organización se encuentra en la región oeste de Europa, la zona geográfica de reserva de capacidad es Francia.
Nuestros intervalos IP de Mac no se incluyen en las direcciones IP de Azure anteriores, ya que se hospedan en la GitHub macOS de la máquina virtual. Los intervalos IP se pueden recuperar mediante la API GitHub metadatos mediante las instrucciones que se proporcionan aquí.
Ejemplo
En el ejemplo siguiente, los intervalos de direcciones IP del agente hospedado para una organización de la región Oeste de EE. UU. se recuperan del archivo semanal. Puesto que la región Oeste de EE. UU. se encuentra en la Estados Unidos geográfica, se incluyen las direcciones IP de todas las regiones del Estados Unidos geográfica. En este ejemplo, las direcciones IP se escriben en la 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 servicio
Los agentes hospedados por Microsoft no se pueden enumerar por etiquetas de servicio. Si intenta conceder a los agentes hospedados acceso a los recursos, deberá seguir el método de lista de permitidos del intervalo IP.
Seguridad
Los agentes hospedados por Microsoft se ejecutan en una plataforma segura de Azure. Sin embargo, debe tener en cuenta las siguientes consideraciones de seguridad.
- Aunque los agentes hospedados por Microsoft se ejecutan en la red pública de Azure, no se les asignan direcciones IP públicas. Por lo tanto, las entidades externas no pueden tener como destino agentes hospedados por Microsoft.
- Los agentes hospedados por Microsoft se ejecutan en máquinas virtuales individuales, que se vuelve a imagen después de cada ejecución. Cada agente está dedicado a una sola organización y cada máquina virtual hospeda un solo agente.
- La ejecución de la canalización en agentes hospedados por Microsoft tiene varias ventajas desde la perspectiva de la seguridad. Si ejecuta código que no es de confianza en la canalización, como las contribuciones de bifurcaciones, es más seguro ejecutar la canalización en agentes hospedados por Microsoft que en agentes auto hospedados que residen en la red corporativa.
- Cuando una canalización necesita acceder a los recursos corporativos detrás de un firewall, debe permitir el intervalo de direcciones IP para la geografía de Azure. Esto puede aumentar la exposición, ya que el intervalo de direcciones IP es bastante grande y dado que las máquinas de este intervalo también pueden pertenecer a otros clientes. La mejor manera de evitarlo es evitar la necesidad de acceder a los recursos internos.
- Las imágenes hospedadas no se ajustan a las pruebas comparativas de seguridad de CIS. Para usar imágenes con seguridad CIS, debe crear agentes auto-hospedados o agentes de conjunto de escalado.
Funcionalidades y limitaciones
Agentes hospedados por Microsoft:
- Tenga el software anterior. También puede agregar software durante la compilación o la versión mediante las tareas del instalador de herramientas.
- Obtiene un agente recién imagendo para cada trabajo de la canalización.
- Proporcione 10 GB de almacenamiento para las salidas de origen y compilación.
- Proporcione un nivel gratis:
- Proyecto público: 10 trabajos paralelos hospedados por Microsoft gratuitos que se pueden ejecutar hasta 360 minutos (6 horas) cada vez, sin límite de tiempo general al mes. Póngase en contacto con nosotros para aumentar los límites de nivel gratis.
- Proyecto privado: un trabajo paralelo gratuito que se puede ejecutar hasta 60 minutos cada vez, hasta que haya usado 1800 minutos (30 horas) al mes. Puede pagar por capacidad adicional por trabajo paralelo. Los trabajos paralelos de pago eliminan el límite de tiempo mensual y permiten ejecutar cada trabajo durante un máximo de 360 minutos (6 horas). Compre trabajos paralelos hospedados por Microsoft.
- Al crear una nueva organización Azure DevOps, no se le conceden estas concesiones gratuitas de forma predeterminada. Para solicitar la concesión gratuita para proyectos públicos o privados, envíe una solicitud.
- Ejecutar en Microsoft Azure máquinas virtuales de uso general Standard_DS2_v2
- Ejecutar como administrador en Windows y un usuario sudo sin contraseña en Linux
- (solo Linux) Pasos de ejecución de
cgroupun que ofrece 6 GB de memoria física y 13 GB de memoria total
Los agentes hospedados por Microsoft no ofrecen:
- La capacidad de conectarse de forma remota.
- La capacidad de colocar artefactos en un recurso compartido de archivos UNC.
- La capacidad de unir máquinas directamente a la red corporativa.
- La capacidad de obtener máquinas de compilación más grandes o más eficaces.
- La capacidad de cargar previamente software personalizado. Puede instalar software durante una ejecución de canalización, como a través de tareas del instalador de herramientas o en un script.
- Posibles ventajas de rendimiento que podría obtener mediante el uso de agentes auto hospedados que podrían iniciar y ejecutar compilaciones con mayor rapidez. Más información
- La capacidad de ejecutar COMPILACIONES XAML.
Si los agentes hospedados por Microsoft no satisfacen sus necesidades, puede implementar sus propios agentes auto hospedados o usar agentes de conjunto de escalado.
Preguntas más frecuentes
¿Cómo puedo ver qué software se incluye en una imagen?
Para ver el software instalado para cada agente hospedado, elija el vínculo Software incluido en la tabla Software.
¿Cómo elige Microsoft el software y las versiones que se colocarán en la imagen?
Puede encontrar más información sobre las versiones de software incluidas en las imágenes en Directrices para lo que está instalado.
¿Cuándo se actualizan las imágenes?
Normalmente, las imágenes se actualizan semanalmente. Puede comprobar los distintivos de estado que están en el formato donde la primera parte indica la fecha en que se actualizó la imagen.
¿Qué puedo hacer si el software que necesito se quita o se reemplaza por una versión más reciente?
Puede hacernos saber si presenta un problema GitHub seleccione los vínculos Software incluido en la tabla Use a Microsoft-hosted agent (Usar un agente hospedado por Microsoft).
También puede usar un agente auto hospedado que incluya las versiones exactas del software que necesita. Para obtener más información, vea Agentes auto-hospedados.
¿Qué ocurre si necesito una máquina más grande con más potencia de procesamiento, memoria o espacio en disco?
No podemos aumentar la memoria, la potencia de procesamiento ni el espacio en disco de los agentes hospedados por Microsoft, pero puede usar agentes auto hospedados o agentes de conjunto de escalado hospedados en máquinas con las especificaciones deseadas.
No puedo seleccionar un agente hospedado por Microsoft y no puedo poner en cola mi compilación o implementación. ¿Cuál debo hacer?
Los agentes hospedados por Microsoft solo están disponibles en Azure Pipelines y no en TFS ni Azure DevOps Server.
De forma predeterminada, todos los colaboradores del proyecto de una organización tienen acceso a los agentes hospedados por Microsoft. Sin embargo, el administrador de la organización puede limitar el acceso de los agentes hospedados por Microsoft para seleccionar usuarios o proyectos. Pida al propietario de Azure DevOps organización que le conceda permiso para usar un agente hospedado por Microsoft. Consulte Seguridad del grupo de agentes.
Mis canalizaciones que se ejecutan en agentes hospedados por Microsoft pueden tardar más tiempo en completarse. ¿Cómo puedo acelerarlos?
Si la canalización se ha ralentizado recientemente, revise nuestra página de estado para ver si hay interrupciones. Podríamos tener problemas con nuestro servicio. O bien, revise los cambios realizados en el código o la canalización de la aplicación. Es posible que haya aumentado el tamaño del repositorio durante la des check-out, que esté cargando artefactos más grandes o que esté ejecutando más pruebas.
Si solo está configurando una canalización y compara el rendimiento de los agentes hospedados por Microsoft con el equipo local o un agente auto hospedado, tenga en cuenta las especificaciones del hardware que usamos para ejecutar los trabajos. No podemos proporcionarle máquinas más grandes o eficaces. Puede considerar el uso de agentes auto hospedados o agentes de conjunto de escalado si este rendimiento no es aceptable.
Necesito más agentes. ¿Qué se puede hacer?
Todas las Azure DevOps se proporcionan con varios trabajos paralelos gratuitos para proyectos de código abierto y un trabajo paralelo gratuito y minutos limitados cada mes para proyectos privados. Si necesita más minutos o trabajos paralelos para el proyecto de código abierto, póngase en contacto con el soporte técnico. Si necesita más minutos o trabajos paralelos para el proyecto privado, puede comprar más.
Mi canalización se realiza correctamente en el agente auto hospedado, pero se produce un error en los agentes hospedados por Microsoft. ¿Cuál debo hacer?
Es probable que el agente auto hospedado tenga instaladas todas las dependencias adecuadas, mientras que las mismas dependencias, herramientas y software no están instalados en los agentes hospedados por Microsoft. En primer lugar, revise detenidamente la lista de software que se instala en los agentes hospedados por Microsoft siguiendo el vínculo a Software incluido en la tabla anterior. A continuación, compárelo con el software instalado en el agente auto hospedado. En algunos casos, los agentes hospedados por Microsoft pueden tener las herramientas que necesita (por ejemplo, Visual Studio), pero es posible que no se hayan instalado todos los componentes opcionales necesarios. Si encuentra diferencias, tiene dos opciones:
Puede crear un nuevo problema en el repositorio, donde se realiza un seguimiento de las solicitudes de software adicional. Ponerse en contacto con el soporte técnico no le ayudará a configurar software nuevo en agentes hospedados por Microsoft.
Puede usar agentes auto hospedados o agentes de conjunto de escalado. Con estos agentes, tiene el control total de las imágenes que se usan para ejecutar las canalizaciones.
Mi compilación se realiza correctamente en mi máquina local, pero se produce un error en los agentes hospedados por Microsoft. ¿Cuál debo hacer?
Es probable que la máquina local tenga instaladas todas las dependencias adecuadas, mientras que las mismas dependencias, herramientas y software no están instaladas en los agentes hospedados por Microsoft. En primer lugar, revise detenidamente la lista de software que se instala en los agentes hospedados por Microsoft siguiendo el vínculo a Software incluido en la tabla anterior. A continuación, compárelo con el software instalado en el equipo local. En algunos casos, los agentes hospedados por Microsoft pueden tener las herramientas que necesita (por ejemplo, Visual Studio), pero es posible que no se hayan instalado todos los componentes opcionales necesarios. Si encuentra diferencias, tiene dos opciones:
Puede crear un nuevo problema en el repositorio, donde se realiza un seguimiento de las solicitudes de software adicional. Esta es la mejor opción para instalar software nuevo. Ponerse en contacto con el soporte técnico no le ayudará a configurar software nuevo en agentes hospedados por Microsoft.
Puede usar agentes auto hospedados o agentes de conjunto de escalado. Con estos agentes, tiene el control total de las imágenes que se usan para ejecutar las canalizaciones.
Se produce un error en la canalización con el siguiente error: "No queda espacio en el dispositivo".
Los agentes hospedados por Microsoft solo tienen 10 GB de espacio en disco disponible para ejecutar el trabajo. Este espacio se consume cuando se desvía el código fuente, al descargar paquetes, al descargar imágenes de Docker o al generar archivos intermedios. Desafortunadamente, no podemos aumentar el espacio disponible en las imágenes hospedadas por Microsoft. Puede reestructurar la canalización para que pueda caber en este espacio. O bien, puede considerar el uso de agentes auto-hospedados o agentes de conjunto de escalado.
Mi canalización que se ejecuta en agentes hospedados por Microsoft requiere acceso a los servidores de nuestra red corporativa. ¿Cómo se obtiene una lista de direcciones IP que se permiten en el firewall?
Consulte la sección Agent IP ranges (Intervalos IP del agente).
Nuestra canalización que se ejecuta en agentes hospedados por Microsoft no puede resolver el nombre de un servidor en nuestra red corporativa. ¿Cómo se puede corregir esto?
Si hace referencia al servidor por su nombre DNS, asegúrese de que el servidor sea accesible públicamente en Internet a través de su nombre DNS. Si hace referencia al servidor por su dirección IP, asegúrese de que la dirección IP sea accesible públicamente en Internet. En ambos casos, asegúrese de que cualquier firewall entre los agentes y la red corporativa tenga permitidos los intervalos IP del agente.
Obtención de un error de autorización ip de SAS de una cuenta Azure Storage cliente
Si recibe un código de error de SAS, lo más probable es que no se permitan los intervalos de direcciones IP de los agentes hospedados por Microsoft debido a las Azure Storage cliente. Hay algunas soluciones alternativas:
- Administre las reglas de red IP de la cuenta Azure Storage y agregue los intervalos de direcciones IP para los agentes hospedados.
- En la canalización, use CLI de Azure actualizar el conjunto de reglas de red de la cuenta de Azure Storage justo antes de acceder al almacenamiento y, a continuación, restaure el conjunto de reglas anterior.
- Use agentes auto-hospedados o agentes de conjunto de escalado.
¿Cómo puedo seleccionar manualmente las versiones de las herramientas en el agente de MacOS hospedado?
Xamarin
El agente de macOS hospedado almacena las versiones del SDK de Xamarin y las versiones mono asociadas como un conjunto de vínculos simbólicos a las ubicaciones del SDK de Xamarin que están disponibles mediante un solo vínculo simbólico de agrupación.
Para seleccionar manualmente una versión del SDK de Xamarin para usarla en el agente de macOS hospedado, ejecute el siguiente comando bash antes de la tarea de compilación de Xamarin como parte de la compilación, especificando el vínculo simbólico al paquete de versiones de Xamarin que necesita.
/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"
La lista de todas las versiones y vínculos simbólicos del SDK de Xamarin disponibles se puede encontrar en la documentación de los agentes:
Este comando no selecciona la versión mono más allá del SDK de Xamarin. Para seleccionar manualmente una versión de Mono, consulte las instrucciones siguientes.
En caso de que use una versión no predeterminada de Xcode para compilar aplicaciones de Xamarin.iOS o Xamarin.Mac, debe ejecutar además esta línea de comandos:
/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"
Dónde $(xcodeRoot) = /Applications/Xcode_12.4.app
Las versiones de Xcode del grupo de agentes de macOS hospedado se pueden encontrar aquí.
Xcode
Si usa la tarea Xcode incluida con Azure Pipelines y TFS, puede seleccionar una versión de Xcode en las propiedades de esa tarea. De lo contrario, para establecer manualmente la versión de Xcode que se va a usar en el grupo de agentes de macOS hospedado, antes de la tarea de compilación, ejecute esta línea de comandos como parte de la compilación, reemplazando el número de versión 12.4 de Xcode según sea necesario:
/bin/bash -c "sudo xcode-select -s /Applications/Xcode_12.4.app/Contents/Developer"
Las versiones de Xcode del grupo de agentes de macOS hospedado se pueden encontrar aquí.
Este comando no funciona para las aplicaciones de Xamarin. Para seleccionar manualmente una versión de Xcode para compilar aplicaciones de Xamarin, consulte las instrucciones anteriores.
Mono
Para seleccionar manualmente una versión mono para usarla en el grupo de agentes de macOS hospedado, ejecute este script en cada trabajo de la compilación antes de la tarea de compilación mono, especificando el vínculo simbólico con la versión de Mono necesaria (puede encontrar la lista de todos los vínculos simbólicos disponibles en la sección de Xamarin anterior):
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"