Publicación y descarga de Universal Packages con Azure Pipelines

Azure DevOps Services

Los paquetes universales permiten empaquetar cualquier número de archivos de cualquier tipo y compartirlos con el equipo. Con la tarea Paquete universal de Azure Pipelines, puede empaquetar, publicar y descargar paquetes de diversos tamaños, hasta 4 TB. Cada paquete se identifica de forma única con un nombre y un número de versión. Puede usar la CLI de Azure o Azure Pipelines para publicar y consumir paquetes desde las fuentes de Artifacts.

Nota:

Los paquetes universales solo están disponible en Azure DevOps Services.

Copiar archivos

La tarea Paquetes universales de Azure Pipelines se establece para usar $(Build.ArtifactStagingDirectory) como directorio de publicación predeterminado. Para preparar el paquete universal para su publicación, mueva los archivos que desea publicar a ese directorio. También puede usar la tarea de utilidad Copiar archivos para copiar esos archivos en el directorio de publicación.

Publicación de un paquete universal

Para publicar un paquete universal en la fuente de Azure Artifacts, agregue la tarea siguiente al archivo YAML de la canalización.

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    packagePublishDescription: '<Package description>'
Argumento Descripción
publishDirectory Ubicación de los archivos que desea publicar.
vstsFeedPublish Nombre del proyecto y de la fuente en que se va a publicar. Si trabaja con una fuente con ámbito de organización, especifique solo el nombre de la fuente.
vstsFeedPackagePublish Nombre del paquete. Debe estar en minúsculas. Use solo letras, números y guiones.
packagePublishDescription Descripción del contenido del paquete.

Para publicar paquetes en una fuente de Azure Artifacts desde la canalización, la identidad de la canalización debe tener el rol de Publicador de fuentes (colaborador) en la fuente. Para obtener más información, consulte Permisos de canalizaciones.

Para publicar en una fuente externa, primero debe crear una conexión de servicio para autenticarse con la fuente. Para obtener más información, consulte Administración de conexiones de servicio.

Control de versiones de paquetes

Los paquetes universales siguen la especificación de control de versiones semánticas y se pueden identificar en virtud de sus nombres y números de versión. Los números de versión semántica constan de tres componentes numéricos, Principal, Secundaria y Revisión, con el formato: Major.Minor.Patch.

El número de versión secundaria se incrementa cuando se agregan características nuevas que son compatibles con versiones anteriores; en este caso, se incrementa la versión secundaria y se restablece la versión de revisión a 0 (1.4.17 a 1.5.0). El número de versión principal se incrementa cuando hay cambios significativos que podrían interrumpir la compatibilidad con versiones anteriores. En este caso, incrementará la versión principal y restablecerá las versiones secundarias y de revisión a 0 (2.6.5 a 3.0.0). El número de versión de la revisión debe incrementarse cuando solo se realicen correcciones de errores u otros pequeños cambios que no afecten a la compatibilidad con versiones anteriores (1.0.0 a 1.0.1).

Al publicar un paquete nuevo, la tarea Paquetes universales seleccionará automáticamente la versión principal, secundaria o de revisión siguiente.

Para habilitar el control de versiones para el paquete, agregue una entrada versionOption al archivo YAML. Las opciones para publicar una nueva versión de paquete son: major, minor, patcho custom.

La selección de custom le permite especificar manualmente la versión del paquete. Las otras opciones obtienen la última versión del paquete de su fuente e incrementan el segmento de versión elegido en 1. Por lo tanto, si tiene un testPackage 1.0.0y selecciona la opción principal, el paquete nuevo será testPackage 2.0.0. Si selecciona la opción secundaria, la versión del paquete será 1.1.0, y si selecciona la opción de revisión, la versión del paquete será 1.0.1.

Si elige la opción custom, también debe especificar un valor versionPublish como se indica a continuación:

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    versionOption: custom
    versionPublish: '<Package version>'
    packagePublishDescription: '<Package description>'
Argumento Descripción
publishDirectory Ubicación de los archivos que desea publicar.
vstsFeedPublish Nombre del proyecto y de la fuente en que se va a publicar. Si trabaja con una fuente con ámbito de organización, especifique solo el nombre de la fuente.
vstsFeedPackagePublish Nombre del paquete. Debe estar en minúsculas. Use solo letras, números y guiones.
versionOption Seleccione una estrategia de control de versiones. Opciones: major, minor, patch y custom.
versionPublish Versión personalizada del paquete.
packagePublishDescription Descripción del contenido del paquete.

Descarga de un paquete universal

Para descargar un paquete universal desde una fuente de la organización, use la tarea Paquete universal con el comando download, tal como se indica a continuación:

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    vstsFeed: '<projectName>/<feedName>'
    vstsFeedPackage: '<packageName>'
    vstsPackageVersion: '<packageVersion>'
    downloadDirectory: '$(Build.SourcesDirectory)\someFolder'
Argumento Descripción
vstsFeed Fuente de Artifacts que hospeda el paquete que se va a descargar.
vstsFeedPackage Nombre del paquete que se va a descargar.
vstsPackageVersion Versión del paquete que se va a descargar.
downloadDirectory Carpeta de destino del paquete. Valor predeterminado: $(System.DefaultWorkingDirectory).

Para descargar un paquete universal desde un origen externo, use el fragmento de código siguiente:

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    feedsToUse: external
    externalFeedCredentials: 'MSENG2'
    feedDownloadExternal: 'fabrikamFeedExternal'
    packageDownloadExternal: 'fabrikam-package'
    versionDownloadExternal: 1.0.0
Argumento Descripción
feedsToUse Establezca el valor en external al descargar desde un origen externo.
externalFeedCredentials Nombre de la conexión de servicio a la fuente externa. Para obtener más información, consulte Administración de conexiones de servicio.
feedDownloadExternal Nombre de la fuente externa.
packageDownloadExternal Nombre del paquete que desea descargar.
versionDownloadExternal Versión del paquete que desea descargar.

Sugerencia

Puede usar caracteres comodín para descargar la versión más reciente de un paquete universal. Para obtener más información, consulte Descarga de la última versión.