Freigeben über


TwineAuthenticate@1 - Python Twine Upload authentifizieren v1-Aufgabe

Verwenden Sie diese Aufgabe, um Uploads von Python-Verteilungen mithilfe von Twine zu authentifizieren. Fügen Sie ihrem Twine-Uploadbefehl -r FeedName/EndpointName --config-file $(PYPIRC_PATH) 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 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.

Eingänge

artifactFeed - Mein Feedname (unten auswählen)
string.

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


artifactFeed - Mein Feed (unten auswählen)
string.

Gibt den Feednamen des Azure-Artefakts an, der bei 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.

Eine Twine-Dienstverbindung Namen einer externen Organisation, um sich mit Twine zu authentifizieren. Die im Endpunkt gespeicherten Anmeldeinformationen müssen über Paketuploadberechtigungen verfügen.


Aufgabensteuerungsoptionen

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

Ausgabevariablen

Keiner.

Bemerkungen

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

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

Diese Aufgabe muss ausgeführt werden, bevor Sie Twine verwenden, um Python-Verteilungen in eine authentifizierte Paketquelle hochzuladen, z. B. Azure Artifacts. Es gibt keine weiteren Bestellanforderungen. Mehrere Aufrufe dieser Aufgabe stapeln keine Anmeldeinformationen. Jede Aufgabe, die ausgeführt wird, löscht alle zuvor gespeicherten Anmeldeinformationen.

Mein Agent liegt hinter einem Webproxy. Wird TwineAuthenticate Twine einrichten, um meinen Proxy zu verwenden?

Nein. Während diese Aufgabe selbst hinter einem Webproxy funktioniert, den Ihr Agent für die Verwendungkonfiguriert hat, konfiguriert er 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 ausgeführt wird als das Projekt, 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

Die folgenden Beispiele veranschaulichen, 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 zum Veröffentlichen einer Verteilung im Feed erforderlichen Authentifizierungsanmeldeinformationen enthält.

# 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 Projektbereich ist. Wenn der Feed der Organisation entspricht, 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 eine Twine-Serviceverbindung Eintrag für pypi. Die Authentifizierungsaufgabe verwendet diese Dienstverbindung, um eine .pypirc Datei zu erstellen, die die zum Veröffentlichen der Verteilung erforderlichen Authentifizierungsanmeldeinformationen enthält.

# 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, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.144.0 oder höher
Vorgangskategorie Paket
Anforderung BESCHREIBUNG
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.120.0 oder höher
Vorgangskategorie Paket