Compartir a través de


TwineAuthenticate@1 - Python carga de hilo autenticar tarea v1

Utiliza esta tarea para autenticar las subidas de distribuciones en Python usando Twine. Agregue -r FeedName/EndpointName --config-file $(PYPIRC_PATH) al comando de carga de twine. Para las fuentes presentes en esta organización, use el nombre de fuente como repositorio (-r). De lo contrario, use el nombre del punto de conexión definido en la conexión de servicio.

Sintaxis

# Python twine upload authenticate v1
# Authenticate for uploading Python distributions using twine. Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to your twine upload command. For feeds present in this organization, use the feed name as the repository (-r). Otherwise, use the endpoint name defined in the service connection.
- task: TwineAuthenticate@1
  inputs:
  # Feeds and Authentication
    #azureDevOpsServiceConnection: # string. Alias: workloadIdentityServiceConnection. 'Azure DevOps' Service Connection. 
    #feedUrl: # string. Azure Artifacts Feed url. 
    #artifactFeed: # string. My feed name (select below). 
    #pythonUploadServiceConnection: # string. Feed from external organizations.
# Python twine upload authenticate v1
# Authenticate for uploading Python distributions using twine. Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to your twine upload command. For feeds present in this organization, use the feed name as the repository (-r). Otherwise, use the endpoint name defined in the service connection.
- task: TwineAuthenticate@1
  inputs:
  # Feeds and Authentication
    #artifactFeed: # string. My feed name (select below). 
    #pythonUploadServiceConnection: # string. Feed from external organizations.
# Python twine upload authenticate v1
# Authenticate for uploading Python distributions using twine. Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to your twine upload command. For feeds present in this organization, use the feed name as the repository (-r). Otherwise, use the endpoint name defined in the service connection.
- task: TwineAuthenticate@1
  inputs:
  # Feeds and Authentication
    #artifactFeed: # string. My feed (select below). 
    #pythonUploadServiceConnection: # string. Feed from external organizations.

Entradas

azureDevOpsServiceConnection - 'Azure DevOps' Conexión de Servicio
Alias de entrada: workloadIdentityServiceConnection. string.

Si esto está activado, feedUrl es obligatorio. Todas las demás entradas son ignoradas.


feedUrl - Azure Artifacts URL de alimentación
string.

Si esto está activado, workloadIdentityServiceConnection es obligatorio. Todas las demás entradas son ignoradas. No es compatible con pythonUploadServiceConnections. La URL del feed debería estar en el pypi formato de registro de subida: https://pkgs.dev.azure.com/{ORG_NAME}/{PROJECT}/_packaging/{FEED_NAME}/pypi/upload/.


artifactFeed - Mi nombre de fuente (seleccione a continuación)
string.

Especifica el nombre de feed del artefacto de Azure para autenticarse con hilo. La fuente de autenticación debe estar presente en la organización. Para fuentes con ámbito de proyecto, use la sintaxis projectName/feedNameSelect.


artifactFeed - Mi fuente (seleccione a continuación)
string.

Especifica el nombre de feed del artefacto de Azure para autenticarse con hilo. La fuente de autenticación debe estar presente en la organización. Para fuentes con ámbito de proyecto, use la sintaxis projectName/feedNameSelect.


fuente de pythonUploadServiceConnection - de organizaciones externas
string.

Una conexión de servicio de twine nombre de una organización externa para autenticarse con twine. Las credenciales almacenadas en el punto de conexión deben tener permisos de carga de paquetes.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Proporciona twine credenciales a una variable de entorno PYPIRC_PATH para el ámbito de la compilación. Esto te permite publicar Python paquetes en feeds con twine desde tu build.

¿Cuándo debo ejecutar esta tarea en mi canalización?

Esta tarea debe ejecutarse antes de que uses Twine para subir distribuciones en Python a un código fuente de paquetes autenticado, como Azure Artifacts. No hay ningún otro requisito de ordenación. Varias invocaciones de esta tarea no apilan las credenciales. Cada ejecución de tareas borrará las credenciales almacenadas anteriormente.

Mi agente está detrás de un proxy web. ¿TwineAuthenticate configurará twine para usar mi proxy?

No. Aunque esta tarea funcionará detrás de un proxy web de que el agente se ha configurado para usar, no configura twine para usar el proxy.

Mi canalización debe acceder a una fuente en un proyecto diferente

Si la canalización se ejecuta en un proyecto diferente al que hospeda la fuente, debe configurar el otro proyecto para conceder acceso de lectura y escritura al servicio de compilación. Consulta Package en Azure Pipelines para más detalles.

Ejemplos

Los siguientes ejemplos demuestran cómo publicar una distribución de Python en el feed de Azure Artifacts y en el registro oficial de Python.

Publicar la distribución de Python en el feed de Azure Artifacts

En este ejemplo, estamos configurando la autenticación para publicar en un feed privado de Azure Artifacts. La tarea de autenticación crea un archivo .pypirc que contiene las credenciales de autenticación necesarias para publicar una distribución en la fuente.

# Install python distributions like wheel, twine etc
- script: |
     pip install wheel
     pip install twine
  
# Build the python distribution from source
- script: |
     python setup.py bdist_wheel
   
- task: TwineAuthenticate@1
  displayName: Twine Authenticate
  inputs:
    artifactFeed: projectName/feedName    # For project scoped feeds use: projectName/FeedName, or just feedName for organization scoped feeds
  
- script: |
     python -m twine upload -r feedName --config-file $(PYPIRC_PATH) dist/*.whl # Use -r to pass the repository name (defined in the .pypirc file), and --config-file to point to the .pypirc path set by the TwineAuthenticate task
  displayName: Upload package with Twine

La entrada artifactFeed contendrá el proyecto y el nombre de la fuente si la fuente tiene el ámbito del proyecto. Si la fuente tiene ámbito de organización, solo se debe proporcionar el nombre de la fuente. Más información.

Publicar la distribución de Python en el registro oficial de Python

En este ejemplo, estamos configurando la autenticación para publicar en el registro oficial de Python. Cree una entrada de conexión del servicio twine de para pypi. La tarea de autenticación usa esa conexión de servicio para crear un archivo .pypirc que contenga las credenciales de autenticación necesarias para publicar la distribución.

# Install python distributions like wheel, twine etc
- script: |
     pip install wheel
     pip install twine
  
# Build the python distribution from source
- script: |
     python setup.py bdist_wheel
   
- task: TwineAuthenticate@1
  displayName: Twine Authenticate
  inputs:
    pythonUploadServiceConnection: pypitest # Name of the Python package upload service connection
  
- script: |
     python -m twine upload -r "pypitest" --config-file $(PYPIRC_PATH) dist/*.whl # Use -r to pass the repository name, and --config-file to point to the .pypirc path set by the TwineAuthenticate task
  displayName: Upload package with Twine

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente 2.144.0 o superior
Categoría de tarea Paquete
Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente 2.120.0 o superior
Categoría de tarea Paquete