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

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.

Verzweigen des Beispielcodes

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

  1. Gehen Sie zum Repository python-sample-vscode-flask-tutorial.
  2. Wählen Sie Fork in der oberen rechten Ecke der Seite.
  3. Wählen Sie Ihr GitHub-Konto. Standardmäßig ist die Verzweigung mit dem übergeordneten Repository identisch, aber Sie können sie anders benennen.

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 Vorgang abzuschließen. Weitere Informationen finden Sie unter Access to GitHub Repositorys.

Erstellen Ihrer Pipeline

  1. Wählen Sie in Ihrem Azure DevOps-Projekt pipelines Create Pipelines aus, und wählen Sie dann GitHub als Speicherort Ihres Quellcodes>aus.
  2. Wählen Sie auf dem Bildschirm "Repository auswählen" Ihr Verzweigungsbeispiel-Repository aus.
  3. Wählen Sie im Bildschirm Pipeline konfigurieren die Option Starterpipeline aus.

Anpassen Ihrer Pipeline

Ersetzen Sie auf dem Bildschirm "YaML überprüfen" 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 "Speichern" aus, und führen Sie den Vorgang erneut aus .

Die Registerkarte Zusammenfassung zeigt den Status der Ausführung Ihrer Pipeline an.

Um Ihr Artefakt anzuzeigen, wählen Sie den Link Veröffentlicht auf der Registerkarte Zusammenfassung.

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

Die Seite Artefakte zeigt die veröffentlichten Build-Artefakte an. Screenshot der veröffentlichten Build-Artefakte.

Screenshot des abgeschlossenen Python-Jobs.

Die Seite Artefakte zeigt die veröffentlichten Build-Artefakte an. Screenshot des Links für veröffentlichte Build-Artefakte.

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

Screenshot der Testergebnisse der Pipeline.

Klicken Sie auf Run (Ausführen).

Die Build-Nummer wird oben auf der Seite angezeigt. Wählen Sie die Build-Nummer aus, um die Details des Builds zu sehen.

Screenshot des Build-Links der Pipeline.

Die Registerkarte Zusammenfassung zeigt den Status der Ausführung Ihrer Pipeline an.

Um Ihr Artefakt herunterzuladen, wählen Sie den Link Drop im Bereich Veröffentlichte Build-Artefakte.

Screenshot des abgeschlossenen Python-Jobs.

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

Screenshot der Testergebnisse der Pipeline.

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 Seite Projektübersicht die Option Löschen.
  3. Geben Sie den Projektnamen ein, und wählen Sie Löschen.

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