Freigeben über


Erstellen und Veröffentlichen einer Python-App

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

In dieser Schnellstartanleitung erstellen Sie eine Pipeline, die eine Python-App erstellt und testet. Sie erfahren, wie Sie Mithilfe von Azure Pipelines Python-Apps und -Skripts als Teil Ihres kontinuierlichen Integrations- und Continuous Delivery-Systems (CI/CD) erstellen, testen und bereitstellen.

Voraussetzungen

Python ist auf von Microsoft gehosteten Agents für Linux, macOS und Windows vorinstalliert. Sie müssen nichts mehr einrichten, um Python-Projekte zu erstellen. Informationen dazu, welche Python-Versionen vorinstalliert sind, finden Sie unter Software.

Produkt Anforderungen
Azure DevOps – Ein Azure DevOps-Projekt.
– Eine Möglichkeit zum Ausführen von Pipelines auf von Microsoft gehosteten Agenten. Sie können entweder einen Parallelauftrag erwerben oder einen Free-Tarif anfordern.
- Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Pipeline.
- Erlaubnisse:
     – Wenn Sie eine Pipeline erstellen wollen, müssen Sie Mitglied der Gruppe Mitwirkende sein, und für die Gruppe muss die Berechtigung Buildpipeline erstellen auf „Zulassen“ festgelegt sein. Mitglieder der Gruppe "Projektadministratoren " können Pipelines verwalten.
    – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen.
GitHub (Englisch) - Ein GitHub-Konto .
– Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines.
Produkt Anforderungen
Azure DevOps – Ein Azure DevOps-Projekt.
– Ein selbst gehosteter Agent, auf dem Python 3.12 oder eine andere Python-Version installiert ist. Um einen zu erstellen, lesen Sie Selbst gehostete Agenten.
- Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Pipeline.
- Erlaubnisse:
    – Wenn Sie eine Pipeline erstellen wollen, müssen Sie Mitglied der Gruppe Mitwirkende sein, und für die Gruppe muss die Berechtigung Buildpipeline erstellen auf „Zulassen“ festgelegt sein. Mitglieder der Gruppe "Projektadministratoren " können Pipelines verwalten.
    – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen.
GitHub (Englisch) - Ein GitHub-Konto .
– Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines.

Wichtig

GitHub-Verfahren erfordern möglicherweise, dass Sie eine oder mehrere der folgenden Aktionen in GitHub ausführen:

  • Melden Sie sich an.
  • Autorisieren von Azure-Pipelines.
  • Authentifizieren sie sich bei GitHub-Organisationen.
  • Installieren Sie die Azure Pipelines-App.

Folgen Sie den Anweisungen, um die erforderlichen Prozesse abzuschließen. Weitere Informationen finden Sie unter Access to GitHub Repositorys.

Forken des Beispielcodes

Forken Sie das Python-Beispiel-Repository in Ihr GitHub-Konto.

  1. Wechseln Sie zum Python-sample-vscode-flask-tutorial Repository .
  2. Wählen Sie oben rechts Fork aus.
  3. Stellen Sie sicher, dass der Name Ihres GitHub-Kontos unter "Besitzer" ausgewählt ist, und wählen Sie "Verzweigung erstellen" aus. Ein Fork hat standardmäßig den gleichen Namen wie das übergeordnete Repository, aber Sie können ihm einen anderen Namen geben.

Erstellen Ihrer Pipeline

  1. Wählen Sie in Ihrem Azure DevOps-Projekt "Pipelines" im linken Navigationsmenü und dann " Neue Pipeline" oder " Pipeline erstellen" aus, wenn diese Pipeline der erste im Projekt ist.
  2. Wählen Sie auf dem Codebildschirm "Wo ist Ihr Code " GitHub als Speicherort des Quellcodes aus.
  3. Wählen Sie auf der Anzeige Repository auswählen Ihr geforktes Python-Beispiel-Repository aus.
  4. Wählen Sie auf dem Bildschirm "Pipeline konfigurieren" die Option "Startpipeline" aus.

Passen Sie Ihre Pipeline an

Ersetzen Sie in der Ansicht Überprüfen der Pipeline-YAML den Inhalt der generierten azure-pipelines.yml-Datei durch den folgenden Code. Der Code führt die folgenden Aktionen für drei verschiedene Versionen von Python aus:

  1. Installiert erforderliche Python-Version und Abhängigkeiten.
  2. Pakete erstellen Artefakte in ein ZIP-Archiv.
  3. Veröffentlicht das Archiv in Ihrer Pipeline.
  4. Führt Tests aus.
trigger:
- main

pool:
  vmImage: ubuntu-latest

strategy:
  matrix:
    Python310:
      python.version: '3.10'
    Python311:
      python.version: '3.11'
    Python312:
      python.version: '3.12'

steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '$(python.version)'
    displayName: 'Use Python $(python.version)'

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'

  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)-$(python.version).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

Ersetzen Sie in der Ansicht Überprüfen der Pipeline-YAML den Inhalt der generierten azure-pipelines.yml-Datei durch den folgenden Code. Der Code führt die folgenden Aktionen aus:

  1. Installiert erforderliche Python-Version und Abhängigkeiten.
  2. Pakete erstellen Artefakte in ein ZIP-Archiv.
  3. Veröffentlicht das Archiv in Ihrer Pipeline.
  4. Führt Tests aus.

Passen Sie azure-pipelines.yml an Ihre Projektkonfiguration an.

  • Wenn Sie über einen anderen Agentpool verfügen, ersetzen Sie den Poolplatzhalter name durch ihren Poolnamen oder default.
  • Ändern Sie bei Bedarf die Python versionSpec in eine Version, die auf Ihrem selbst gehosteten Agent installiert ist.
  trigger:
  - main

  pool: 
    name: '<your-pool-name or default>'

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.12'
    displayName: 'Use Python 3.12'  

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'


  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

Ausführen Ihrer Pipeline

Wählen Sie "Speichern und ausführen" aus und wählen Sie dann erneut "Speichern und ausführen" aus. Sie können " Auftrag" auf dem Zusammenfassungsbildschirm auswählen, um Ihren Auftrag in Aktion anzuzeigen.

Der Auftrag wird dreimal ausgeführt, einmal für jede angegebene Python-Version. Die drei Versionen können parallel auf verschiedenen Agents ausgeführt werden.

Screenshot des abgeschlossenen Python-Auftrags mit mehreren Versionen.

Screenshot des abgeschlossenen einzelnen Python-Auftrags.

Anzeigen von Artefakten und Testergebnissen

Um Ihre Build-Artefakte anzuzeigen, wählen Sie den Link [N] veröffentlicht auf der Registerkarte Zusammenfassung aus.

Screenshot des Links für veröffentlichte Build-Artefakte.

Auf der Seite "Artefakte" werden die veröffentlichten Buildartefakte angezeigt.

Screenshot der veröffentlichten Build-Artefakte.

Screenshot der veröffentlichten Build-Artefakte für einen einzelnen Job.

Um die Testergebnisse anzuzeigen, wählen Sie die Registerkarte "Tests " aus.

Screenshot der Pipelinetestergebnisse.

Bereinigung

Wenn Sie mit der von Ihnen erstellten Pipeline fertig sind, können Sie sie löschen.

  1. Wählen Sie "Pipelines" im linken Navigationsmenü Ihres Projekts aus.

  2. Zeigen Sie in der Pipelineliste auf die von Ihnen erstellte Pipeline, wählen Sie das Symbol "Weitere Aktionen " rechts aus, und wählen Sie dann "Löschen" aus.

    Oder wählen Sie die Pipeline aus, gehen Sie auf der Pipelineseite oben rechts zum Symbol "Weitere Aktionen" und wählen Sie dann "Löschen" aus.

  3. Geben Sie den Pipelinenamen ein, und wählen Sie dann erneut "Löschen" aus.

Sie haben erfolgreich eine Pipeline erstellt und ausgeführt, die eine Python-App erstellt und getestet hat. Sie können jetzt Azure Pipelines verwenden, um Python-Apps und -Skripts als Teil Ihres CI/CD-Prozesses zu erstellen, zu testen und bereitzustellen.

Nächster Schritt