Canalizaciones de versión y orígenes de artefactos

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Con Azure Pipelines, puede implementar los artefactos desde una amplia gama de orígenes de artefactos e integrar el flujo de trabajo con diferentes tipos de repositorios de artefactos. Las versiones se pueden vincular a varios orígenes de artefactos, donde se designa uno como origen principal.

Orígenes de artefactos

Azure Pipelines admite una amplia gama de repositorios, herramientas de control de código fuente y sistemas de integración continua.

Al crear una versión, puede especificar la versión del origen del artefacto. De forma predeterminada, las versiones usan la versión más reciente del artefacto de origen. También puede optar por usar la compilación más reciente de una rama concreta especificando las etiquetas, una versión específica o permitir que el usuario especifique la versión en el momento de la creación de la versión.

Captura de pantalla que muestra cómo agregar un artefacto a una canalización de versión clásica.

Si vincula más de un artefacto, puede especificar cuál es el origen principal (valor predeterminado). El origen del artefacto principal se usa para establecer una serie de variables predefinidas. También se puede usar en las versiones de nomenclatura.

Captura de pantalla que muestra cómo establecer un artefacto de origen principal.

Nota:

Los elementos desplegables Default version dependen del tipo de origen de la definición de compilación vinculada.

  • Las siguientes opciones son compatibles con todos los tipos de repositorio: Specify at the time of release creation, Specific versiony Latest.

  • Las opciones Latest from a specific branch with tags y Latest from the build pipeline default branch with tags son compatibles con los siguientes tipos de repositorio: TfsGit, GitHub, Bitbuckety GitHubEnterprise.

  • Latest from the build pipeline default branch with tags no es compatible con las definiciones de compilación de XAML.

En las siguientes secciones se describe cómo trabajar con los distintos tipos de orígenes de artefactos.

Orígenes de artefactos: Azure Pipelines

Puede vincular una canalización de versión a cualquier compilación de Azure Pipelines. También puede vincular varias canalizaciones de compilación y especificar sus valores predeterminados y configurar desencadenadores de implementación en varios orígenes de compilación. Cuando se complete cualquiera de las compilaciones, desencadenará la creación de una versión.

Las siguientes características están disponibles al usar Azure Pipelines como origen de artefactos:

Característica Descripción
Versiones de desencadenador automático Las nuevas versiones se pueden crear automáticamente cuando hay disponible un nuevo artefacto de compilación (incluidas las compilaciones XAML). Consulte Desencadenadores de versión para obtener más detalles.
Variables de artefacto Se admiten varias variables de artefacto para orígenes de Azure Pipelines.
Elementos de trabajo y confirmaciones Puede vincular elementos de trabajo de Azure Pipelines y se mostrarán en los detalles de las versiones. Las confirmaciones se muestran cuando se usan controles de código fuente de Git o TFVC.
Descarga del artefacto De forma predeterminada, los artefactos de compilación se descargan en el agente que ejecuta la canalización. También puede configurar un paso en la fase para omitir la descarga del artefacto.
Fases de implementación El resumen de compilación enumera todas las fases de implementación en las que se implementó el artefacto.

Nota:

Debe incluir una tarea Publicar artefactos en la canalización de compilación. En el caso de las canalizaciones de compilación de YAML, un artefacto con el nombre drop se publica implícitamente.

De forma predeterminada, las versiones se ejecutan con un ámbito de autorización de trabajo a nivel de colección. Esto significa que las versiones pueden acceder a los recursos de todos los proyectos de la organización (o colección para Azure DevOps Server). Esto resulta útil al vincular artefactos de compilación desde otros proyectos. Puede habilitar Limitar el ámbito de autorización del trabajo al proyecto actual para canalizaciones de versión en la configuración del proyecto para restringir el acceso al artefacto de un proyecto.

Para establecer el ámbito de autorización del trabajo para la organización:

  • Vaya a la configuración de la organización.
  • Seleccione Configuración en Canalizaciones.
  • Active la alternancia Limitar el ámbito de autorización del trabajo al proyecto actual para las canalizaciones de versión para limitar el ámbito al proyecto actual. Esta es la configuración recomendada para tener una buena seguridad.

Para establecer el ámbito de autorización del trabajo para un proyecto específico:

  • Vaya a la configuración delproyecto.
  • Seleccione Configuración en Canalizaciones.
  • Active la alternancia Limitar el ámbito de autorización del trabajo al proyecto actual para las canalizaciones de versión para limitar el ámbito al proyecto actual. Esta es la configuración recomendada, ya que mejora la seguridad de las canalizaciones.

Nota:

Si el ámbito se establece como proyecto a nivel de organización, no puede cambiar el ámbito de cada proyecto.

Todos los trabajos de una versión se ejecutan con el ámbito de autorización del trabajo establecido en recopilación. En otras palabras, estos trabajos tienen acceso a los recursos de todos los proyectos de la colección de proyectos.

Orígenes de artefactos: control de versiones

Hay algunos escenarios en los que es posible que quiera consumir artefactos de distintos controles de origen directamente sin pasarlos a través de una canalización de compilación. Por ejemplo:

  • Desarrollar una aplicación PHP o JavaScript que no requiera una canalización de compilación explícita.

  • Puede administrar las configuraciones de varias fases en distintos repositorios de control de versiones y desea consumir estos archivos de configuración directamente desde el control de versiones como parte de la canalización de implementación.

  • Puede administrar la infraestructura y la configuración como código y quiere administrar estos archivos en un repositorio de control de versiones.

Dado que puede configurar varios orígenes de artefactos en una sola canalización de versión, puede vincular tanto una canalización de compilación que genere los archivos binarios de la aplicación como un repositorio de control de versiones que almacene los archivos de configuración en la misma canalización y use los dos conjuntos de artefactos al implementarlos.

Azure Pipelines admite repositorios de Control de versiones de Team Foundation (TFVC), repositorios de Git y repositorios de GitHub.

Puede vincular una canalización de versión a cualquiera de los repositorios de Git o TFVC en todos los proyectos de la colección (necesitará acceso de lectura a estos repositorios). No se requiere ninguna configuración adicional al implementar artefactos de control de versiones dentro de la misma colección.

Al vincular un repositorio de GitHub y seleccionar una rama, puede editar las propiedades predeterminadas de los tipos de artefacto después de guardar el artefacto. Esto es especialmente útil en escenarios donde la rama de la versión estable del artefacto cambia, y las versiones de entrega continua deben usar esta rama para obtener las versiones más recientes del artefacto. También puede especificar los detalles de la restauración, por ejemplo, si se restauran los submódulos y los archivos de seguimiento de LFS, y la profundidad de la recuperación de cambios.

Al vincular una rama de TFVC, puede especificar el conjunto de cambios que se va a implementar al crear una versión.

Las siguientes características están disponibles al usar TFVC, Git y GitHub como origen de artefactos:

Característica Descripción
Versiones de desencadenador automático Las nuevas versiones se pueden crear automáticamente cuando hay disponible un nuevo artefacto de compilación (incluidas las compilaciones XAML). Consulte Desencadenadores de versión para obtener más detalles.
Variables de artefacto Se admiten varias variables de artefacto para orígenes de Azure Pipelines.
Elementos de trabajo y confirmaciones Puede vincular los elementos de trabajo de Azure Pipelines y se mostrarán en los detalles de las versiones. Las confirmaciones se muestran cuando se usan controles de código fuente de Git o TFVC.
Descarga del artefacto De forma predeterminada, los artefactos de compilación se descargan en el agente que ejecuta la canalización. También puede configurar un paso en la fase para omitir la descarga del artefacto.

De forma predeterminada, las versiones se ejecutan con un ámbito de autorización de trabajo a nivel de colección. Esto significa que las versiones pueden acceder a los recursos de todos los proyectos de la organización (o colección para Azure DevOps Server). Esto resulta útil al vincular artefactos de compilación desde otros proyectos. Puede habilitar Limitar el ámbito de autorización del trabajo al proyecto actual para canalizaciones de versión en la configuración del proyecto para restringir el acceso al artefacto de un proyecto.

Orígenes de artefactos: Jenkins

Para consumir artefactos de Jenkins, debe crear una conexión de servicio para autenticarse con el servidor Jenkins. Consulte Administración de conexiones de servicio y Conexión de servicio Jenkins para obtener más información. El proyecto Jenkins debe configurarse con una acción posterior a la compilación para publicar los artefactos.

Las siguientes características están disponibles al usar Jenkins como origen de artefacto:

Característica Descripción
Versiones de desencadenador automático Las nuevas versiones se pueden crear automáticamente cuando hay disponible un nuevo artefacto de compilación (incluidas las compilaciones XAML). Consulte Desencadenadores de versión para obtener más detalles.
Variables de artefacto Se admiten varias variables de artefacto para orígenes de Azure Pipelines.
Elementos de trabajo y confirmaciones Puede vincular elementos de trabajo de Azure Pipelines y se mostrarán en los detalles de las versiones. Las confirmaciones se muestran cuando se usan controles de código fuente de Git o TFVC.
Descarga del artefacto De forma predeterminada, los artefactos de compilación se descargan en el agente que ejecuta la canalización. También puede configurar un paso en la fase para omitir la descarga del artefacto.

Los artefactos generados por las compilaciones de Jenkins se propagan normalmente a los repositorios de almacenamiento para archivarlos y compartirlos. Azure Blob Storage es uno de los repositorios admitidos, lo que permite consumir proyectos de Jenkins que publican en Azure Storage como orígenes de artefactos en una canalización de versión. Azure Pipelines descarga automáticamente los artefactos de Azure al agente que ejecuta la canalización. En este escenario, no se requiere conectividad entre el agente y el servidor Jenkins. Los agentes hospedados por Microsoft se pueden usar sin exponer el servidor a Internet.

Nota:

Es posible que Azure Pipelines no pueda ponerse en contacto con el servidor Jenkins si, por ejemplo, está dentro de la red empresarial. Si este es el caso, puede integrar Azure Pipelines con Jenkins mediante la configuración de un agente local que pueda acceder al servidor Jenkins. No podrá ver el nombre de los proyectos de Jenkins al vincular a una compilación, pero puede escribir el nombre en el campo de texto de la dirección URL.

Orígenes de artefactos: contenedores

Al implementar aplicaciones en contenedores, la imagen del contenedor primero se inserta en un registro de contenedores. A continuación, puede implementar la imagen de contenedor en Azure Web App for Containers o en un clúster de Docker o Kubernetes. Debe crear una conexión de servicio para autenticarse con Azure. Consulte Administración de conexiones de servicio para obtener más detalles.

Las siguientes características están disponibles al usar Azure Container como origen de artefactos:

Característica Descripción
Versiones de desencadenador automático Las nuevas versiones se pueden crear automáticamente cuando hay disponible un nuevo artefacto de compilación (incluidas las compilaciones XAML). Consulte Desencadenadores de versión para obtener más detalles.
Variables de artefacto Se admiten varias variables de artefacto para orígenes de Azure Pipelines.
Elementos de trabajo y confirmaciones Puede vincular elementos de trabajo de Azure Pipelines y se mostrarán en los detalles de las versiones. Las confirmaciones se muestran cuando se usan controles de código fuente de Git o TFVC.
Descarga del artefacto De forma predeterminada, los artefactos de compilación se descargan en el agente que ejecuta la canalización. También puede configurar un paso en la fase para omitir la descarga del artefacto.

Nota:

Al usar varios orígenes de artefactos, no se admite la asignación de un origen de artefacto para desencadenar una fase determinada. Se creará una versión cada vez que haya una inserción en cualquiera de los orígenes de artefactos. Si quiere hacerlo, Azure Pipelines recomienda dividir la canalización de versión en varias versiones.

Orígenes de artefactos: Azure Artifacts

A continuación se muestran algunos de los escenarios en los que puede usar Azure Artifacts como origen de artefacto:

  1. El binario de la aplicación se publica en Azure Artifacts y quiere consumir el paquete en una canalización de versión.
  2. Necesita paquetes adicionales almacenados en Azure Artifacts como parte del flujo de trabajo de implementación.

Con Azure Artifacts en la canalización de versión, debe seleccionar la fuente, el paquete y la versión predeterminada del paquete. Puede elegir la versión más reciente del paquete, usar una versión específica o seleccionar la versión en el momento de la creación de la versión. Durante la implementación, el paquete se descarga o extrae en el agente que ejecuta la canalización.

Las siguientes características están disponibles al usar Azure Artifacts como origen de artefacto:

Característica Descripción
Versiones de desencadenador automático Las nuevas versiones se pueden crear automáticamente cuando hay disponible un nuevo artefacto de compilación (incluidas las compilaciones XAML). Consulte Desencadenadores de versión para obtener más detalles.
Variables de artefacto Se admiten varias variables de artefacto para orígenes de Azure Pipelines.
Elementos de trabajo y confirmaciones Puede vincular elementos de trabajo de Azure Pipelines y se mostrarán en los detalles de las versiones. Las confirmaciones se muestran cuando se usan controles de código fuente de Git o TFVC.
Descarga del artefacto De forma predeterminada, los artefactos de compilación se descargan en el agente que ejecuta la canalización. También puede configurar un paso en la fase para omitir la descarga del artefacto.

Control de instantáneas de Maven

Al usar instantáneas de Maven, se pueden descargar varias versiones a la vez (ejemplo myApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jar, myApplication-2.1.0.BUILD-20190820.220331-1.jar). Es posible que tenga que quitar la versión anterior y mantener solo el artefacto más reciente antes de la implementación. Ejecute el siguiente comando de PowerShell en un símbolo del sistema con privilegios elevados para quitar todas las copias, excepto la que tenga el valor lexicográfico más alto:

Get-Item "myApplication*.jar" | Sort-Object -Descending Name | Select-Object -SkipIndex 0 | Remove-Item

Nota:

Puede almacenar hasta 30 instantáneas de Maven en la fuente. Una vez que alcance el límite máximo, Azure Artifacts eliminará automáticamente las instantáneas hasta llegar a 25. Este proceso se desencadenará automáticamente cada vez que se publiquen más de 30 instantáneas en la fuente.

Orígenes de artefactos: servidor TFS

Puede usar Azure Pipelines para implementar artefactos desde servidores TFS sin tener que hacer que el servidor se pueda detectar en Internet mediante la configuración de un agente de automatización local. Los artefactos se descargan en el agente local y, a continuación, se implementan en los servidores de destino especificados sin salir de la red empresarial. Esto es ideal para que los clientes aprovechen sus inversiones de su infraestructura local mientras sacan partido de las versiones de Azure Pipelines.

Para usar servidores TFS como origen de artefacto, debe instalar la extensión Artefactos de TFS para Azure Pipelines desde Visual Studio Marketplace y, a continuación, crear una conexión de servicio para autenticarse con Azure Pipelines. Una vez autenticado, puede vincular una canalización de compilación de TFS a la canalización de versión y elegir Compilación de TFS externa en el menú desplegable Tipo.

Las siguientes características están disponibles al usar servidores TFS como origen de artefacto:

Característica Descripción
Versiones de desencadenador automático Las nuevas versiones se pueden crear automáticamente cuando hay disponible un nuevo artefacto de compilación (incluidas las compilaciones XAML). Consulte Desencadenadores de versión para obtener más detalles.
Variables de artefacto Se admiten varias variables de artefacto para orígenes de Azure Pipelines.
Elementos de trabajo y confirmaciones Puede vincular elementos de trabajo de Azure Pipelines y se mostrarán en los detalles de las versiones. Las confirmaciones se muestran cuando se usan controles de código fuente de Git o TFVC.
Descarga del artefacto De forma predeterminada, los artefactos de compilación se descargan en el agente que ejecuta la canalización. También puede configurar un paso en la fase para omitir la descarga del artefacto.

Es posible que Azure Pipelines no pueda ponerse en contacto con un servidor TFS local en caso de que esté dentro de la red empresarial. En ese caso, puede integrar Azure Pipelines con TFS mediante la configuración de un agente local que pueda acceder al servidor TFS. No podrá ver el nombre de los proyectos de TFS ni las canalizaciones de compilación al vincular a una compilación, pero puede incluir esas variables en los campos de texto de la dirección URL. Además, al crear una versión, es posible que Azure Pipelines no pueda consultar el servidor TFS para los números de compilación. En su lugar, escriba el identificador de compilación (no el número de compilación) de la compilación deseada en el campo adecuado o seleccione la compilación más reciente.

Orígenes de artefactos: TeamCity

Para usar TeamCity como origen de artefacto, primero debe instalar la extensión Artefactos de TeamCity para Azure Pipelines desde Visual Studio Marketplace.

Una vez completado, cree una conexión de servicio para autenticarse con el servidor TeamCity. A continuación, puede vincular el artefacto de compilación a una canalización de versión. La configuración de compilación de TeamCity debe configurarse con una acción para publicar artefactos.

Las siguientes características están disponibles cuando se usa TeamCity como origen de artefacto:

Característica Descripción
Versiones de desencadenador automático Las nuevas versiones se pueden crear automáticamente cuando hay disponible un nuevo artefacto de compilación (incluidas las compilaciones XAML). Consulte Desencadenadores de versión para obtener más detalles.
Variables de artefacto Se admiten varias variables de artefacto para orígenes de Azure Pipelines.
Elementos de trabajo y confirmaciones Puede vincular elementos de trabajo de Azure Pipelines y se mostrarán en los detalles de las versiones. Las confirmaciones se muestran cuando se usan controles de código fuente de Git o TFVC.
Descarga del artefacto De forma predeterminada, los artefactos de compilación se descargan en el agente que ejecuta la canalización. También puede configurar un paso en la fase para omitir la descarga del artefacto.

Es posible que Azure Pipelines no pueda ponerse en contacto con el servidor TeamCity si, por ejemplo, está dentro de la red empresarial. En este caso, puede integrar Azure Pipelines con TeamCity mediante la configuración de un agente local que pueda acceder al servidor TeamCity. No podrá ver el nombre de los proyectos de TeamCity al vincular a una compilación, pero puede escribirlo en el campo de texto de la dirección URL.

Alias de origen del artefacto

Para garantizar la exclusividad de cada descarga de artefactos, cada origen de artefacto vinculado a una canalización de versión recibe automáticamente una ubicación de descarga específica conocida como alias de origen. Se puede acceder a esta ubicación mediante la variable: $(System.DefaultWorkingDirectory)\[source alias]

El uso de un alias de origen garantiza que el cambio de nombre de un origen de artefacto vinculado no requiera editar las propiedades de la tarea porque la ubicación de descarga definida en el agente no cambia.

De forma predeterminada, el alias de origen es el nombre del origen del artefacto precedido de un guion bajo. En función del tipo de origen del artefacto, será el nombre de la canalización de compilación, el nombre del trabajo, el nombre del proyecto o el nombre del repositorio. Puede editar el alias de origen en la pestaña artefactos de la canalización de versión.

Descarga del artefacto

Cuando se completa una implementación en una fase, los artefactos con versiones de cada uno de los orígenes se descargan en el agente de canalización para que las tareas que se ejecutan dentro de esa fase puedan acceder a esos artefactos. Los artefactos descargados no se eliminan cuando se completa una versión. Sin embargo, al iniciar la próxima versión, los artefactos descargados se eliminan y reemplazan por el nuevo conjunto de artefactos.

Se crea una nueva carpeta única en el agente para cada canalización de versión cuando se inicia una versión y los artefactos se descargan en la siguiente carpeta:$(System.DefaultWorkingDirectory).

Azure Pipelines no realiza ninguna optimización para evitar la descarga de artefactos sin cambios si se vuelve a implementar la misma versión. Además, dado que el contenido descargado anteriormente siempre se elimina al iniciar una nueva versión, Azure Pipelines no puede realizar descargas incrementales en el agente.

Sin embargo, puede configurar la canalización para omitir la descarga automática de un trabajo o una fase específicos si desea hacerlo.