Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 en mi canalización debo ejecutar esta tarea?
- Mi agente está detrás de un proxy web. ¿TwineAuthenticate configurará twine para usar mi proxy?
- Mi canalización debe acceder a una fuente en un proyecto diferente
¿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
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 Python distribución en Azure Artifacts feed
- Publicar Python distribución 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 |