Freigeben über


Erstellen und Veröffentlichen einer Python-App

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

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

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.
Azurblau Ein Azure-Abonnement.
Produkt Anforderungen
Azure DevOps – Ein Azure DevOps-Projekt.
– Ein selbst gehosteter Agent. 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.
Azurblau Ein Azure-Abonnement.

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 Verwenden eines von Microsoft gehosteten Agents.

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 Fork in der oberen rechten Ecke der Seite.
  3. Wählen Sie Ihr GitHub-Konto. Standardmäßig erhält der Fork denselben Namen wie das übergeordnete Repository, aber Sie können ihn umbenennen.

Wichtig

Während der folgenden Verfahren werden Sie möglicherweise aufgefordert, eine GitHub-Dienstverbindung zu erstellen oder zu GitHub umgeleitet zu werden, um sich anzumelden, Azure Pipelines zu installieren oder Azure Pipelines zu autorisieren. Folgen Sie den Anweisungen auf dem Bildschirm, um den Prozess abzuschließen. Weitere Informationen finden Sie unter Access to GitHub Repositorys.

Erstellen Ihrer Pipeline

  1. Wählen Sie in Ihrem Azure DevOps-Projekt pipelinesCreate Pipelines aus, und wählen Sie > als Speicherort Ihres Quellcodes aus.
  2. Wählen Sie auf dem Bildschirm "Repository auswählen" Ihr geforktes Beispiel-Repository aus.
  3. 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:

  • Installiert erforderliche Python-Versionen und Abhängigkeiten.
  • Pakete erstellen Artefakte in ein ZIP-Archiv.
  • Veröffentlicht das Archiv in Ihrer Pipeline.
  • 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'

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

  • Wenn Sie einen anderen Agenten-Pool haben, ändern Sie den name-Parameter des Pools.
  • Ändern Sie bei Bedarf die Python-Version 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.

Auf der Registerkarte " Zusammenfassung " wird der Status der Pipelineausführung angezeigt.

Um das Buildartefakt anzuzeigen, wählen Sie den veröffentlichten Link 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 des abgeschlossenen Python-Auftrags.

Auf der Seite "Artefakte" werden die veröffentlichten Buildartefakte angezeigt. Screenshot des Links für veröffentlichte Build-Artefakte.

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

Screenshot der Pipelinetestergebnisse.

Bereinigung

Wenn Sie diese Schnellstartanleitung fertig stellen, können Sie das von Ihnen erstellte Azure DevOps-Projekt löschen.

  1. Wählen Sie in Ihrem Projekt das Zahnradsymbol " Project-Einstellungen " in der unteren linken Ecke der Seite aus.
  2. Wählen Sie unten auf der Projektübersichtsseite"Löschen" aus.
  3. Geben Sie den Projektnamen ein, und wählen Sie "Löschen" aus.

Herzlichen Glückwunsch, Sie haben erfolgreich eine Pipeline erstellt und ausgeführt, die eine Python-App erstellt und getestet hat. Jetzt können Sie Azure Pipelines zum Erstellen, Testen und Bereitstellen von Python-Apps und -Skripts als Teil Ihres kontinuierlichen Integrations- und Fortlaufendbereitstellungssystems (CI/CD) verwenden.

Nächste Schritte