TwineAuthenticate@1: Aufgabe zum Hochladen der Authentifizierung v1 für Python-Zwillinge

Verwenden Sie diese Aufgabe, um Uploads von Python-Distributionen mithilfe von Twine zu authentifizieren. Fügen Sie -r FeedName/EndpointName --config-file $(PYPIRC_PATH) ihrem Befehl zum Hochladen von Zwillingen hinzu. Verwenden Sie für Feeds, die in dieser Organisation vorhanden sind, den Feednamen als Repository (-r). Verwenden Sie andernfalls den in der Dienstverbindung definierten Endpunktnamen.

Syntax

# 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.

Eingaben

artifactFeed - Mein Feed (wählen Sie unten aus)
string.

Gibt den Feednamen des Azure-Artefakts an, der mit Twine authentifiziert werden soll. Der Authentifizierungsfeed muss innerhalb der Organisation vorhanden sein. Verwenden Sie für projektbezogene Feeds die Syntax projectName/feedNameSelect.


pythonUploadServiceConnection - Feed von externen Organisationen
string.

Ein Name der Twine-Dienstverbindung von einer externen Organisation, die mit Twine authentifiziert werden soll. Die im Endpunkt gespeicherten Anmeldeinformationen müssen über Berechtigungen zum Hochladen von Paketen verfügen.


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Hinweise

Stellt twine Anmeldeinformationen für eine Umgebungsvariable PYPIRC_PATH für den Bereich des Builds bereit. Auf diese Weise können Sie Python-Pakete für Feeds aus twine Ihrem Build veröffentlichen.

Wann sollte ich diese Aufgabe in meiner Pipeline ausführen?

Diese Aufgabe muss ausgeführt werden, bevor Sie Python-Distributionen mithilfe von Twine in eine authentifizierte Paketquelle wie Azure Artifacts hochladen. Es gibt keine weiteren Bestellanforderungen. Mehrere Aufrufe dieser Aufgabe werden keine Anmeldeinformationen stapeln. Bei jeder Aufgabenausführung werden alle zuvor gespeicherten Anmeldeinformationen gelöscht.

Mein Agent befindet sich hinter einem Webproxy. Richtet TwineAuthenticate twine für die Verwendung meines Proxys ein?

Nein. Obwohl diese Aufgabe selbst hinter einem Webproxy funktioniert, für den Ihr Agent konfiguriert wurde, konfiguriert sie nicht twine für die Verwendung des Proxys.

Meine Pipeline muss auf einen Feed in einem anderen Projekt zugreifen.

Wenn die Pipeline in einem anderen Projekt als dem Projekt ausgeführt wird, das den Feed hostet, müssen Sie das andere Projekt einrichten, um Lese-/Schreibzugriff auf den Builddienst zu gewähren. Weitere Informationen finden Sie unter Paketberechtigungen in Azure Pipelines .

Beispiele

In den folgenden Beispielen wird veranschaulicht, wie Die Python-Verteilung im Azure Artifacts-Feed und in der offiziellen Python-Registrierung veröffentlicht wird.

Veröffentlichen der Python-Verteilung im Azure Artifacts-Feed

In diesem Beispiel legen wir die Authentifizierung für die Veröffentlichung in einem privaten Azure Artifacts-Feed fest. Die Authentifizierungsaufgabe erstellt eine .pypirc Datei, die die Authentifizierungsanmeldeinformationen enthält, die zum Veröffentlichen einer Verteilung im Feed erforderlich sind.

# 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:
    # In this case, name of the feed is 'myTestFeed' in the project 'myTestProject'. Project is needed because the feed is project scoped.
    artifactFeed: myTestProject/myTestFeed
  
# Use command line script to 'twine upload', use -r to pass the repository name and --config-file to pass the environment variable set by the authenticate task.
- script: |
     python -m twine upload -r myTestFeed --config-file $(PYPIRC_PATH) dist/*.whl

Die artifactFeed Eingabe enthält das Projekt und den Feednamen, wenn der Feed im Projektbereich liegt. Wenn der Feed organisationsweit ist, muss nur der Feedname angegeben werden. Weitere Informationen

Veröffentlichen der Python-Verteilung in der offiziellen Python-Registrierung

In diesem Beispiel richten wir die Authentifizierung für die Veröffentlichung in der offiziellen Python-Registrierung ein. Erstellen Sie einen Twine-Dienstverbindungseintrag für pypi. Der Authentifizierungstask verwendet diese Dienstverbindung, um eine .pypirc Datei zu erstellen, die die Authentifizierungsanmeldeinformationen enthält, die zum Veröffentlichen der Verteilung erforderlich sind.

# 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:
    # In this case, name of the service connection is "pypitest".
    pythonUploadServiceConnection: pypitest
  
# Use command line script to 'twine upload', use -r to pass the repository name and --config-file to pass the environment variable set by the authenticate task.
- script: |
     python -m twine upload -r "pypitest" --config-file $(PYPIRC_PATH) dist/*.whl

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassisches Release
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 2.144.0 oder höher
Aufgabenkategorie Paket
Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassisches Release
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 2.120.0 oder höher
Aufgabenkategorie Paket