Publicación de paquetes de Python con Azure Pipelines

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

Con Azure Pipelines, los desarrolladores pueden publicar paquetes de Python en fuentes de Azure Artifacts, registros públicos o almacenarlos como artefactos de canalización. Este artículo le guiará a través de cómo:

  • Instalación de los requisitos previos
  • Conectar a una fuente de Azure Artifacts
  • Publicación de paquetes de Python en una fuente de Azure Artifacts

Requisitos previos

  • Una organización de Azure DevOps y un proyecto. Cree una organización o un proyecto si aún no lo ha hecho.

  • Una fuente de Azure Artifacts. Cree una fuente si aún no tiene una.

Autenticación con Azure Artifacts

Para usar twine para publicar los paquetes de Python, primero debe autenticarse con la fuente de Azure Artifacts. La tarea TwineAuthenticate proporciona credenciales gemelas en una variable de entorno PYPIRC_PATH. A continuación, esta variable se usatwine para facilitar la publicación de los paquetes directamente desde la canalización.

- task: TwineAuthenticate@1
  inputs:
    artifactFeed: <PROJECT_NAME/FEED_NAME>     ## For an organization-scoped feed, artifactFeed: <FEED_NAME>

Importante

Las credenciales almacenadas en la variable de entorno PYPIRC_PATH reemplazan a las de los archivos .ini y .conf.

Si agrega varias tareas TwineAuthenticate en distintas fases de la canalización, cada ejecución de tareas adicional extenderá (no invalidará) la variable de entorno existente PYPIRC_PATH.

Publicación de paquetes de Python en una fuente de Azure Artifacts

- script: |
    pip install build
    pip install twine
  displayName: 'Install build and twine'

- script: |
    python -m build -w
  displayName: 'Python build'

- task: TwineAuthenticate@1
  inputs:
    artifactFeed: <PROJECT_NAME/FEED_NAME>
  displayName: 'Twine Authenticate'

- script: |
    python -m twine upload -r <FEED_NAME> --config-file $(PYPIRC_PATH) dist/*.whl
  displayName: 'Upload to feed'

Nota:

Para publicar los paquetes en una fuente mediante Azure Pipelines, tanto el Servicio de compilación de colecciones de proyectos como las identidades de Servicio de compilación del proyecto deben tener el rol de Publicador de fuentes (colaborador) asignado en la configuración de la fuente. Consulte Administración de permisos para obtener más información.