Udostępnij za pośrednictwem


Kompilowanie i publikowanie aplikacji w języku Python

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

W tej instrukcji szybkiego startu utworzysz potok, który buduje i testuje aplikację Python. Zobaczysz, jak używać usługi Azure Pipelines do tworzenia, testowania i wdrażania aplikacji i skryptów języka Python w ramach systemu ciągłej integracji i ciągłego dostarczania (CI/CD).

Wymagania wstępne

Język Python jest wstępnie zainstalowany na agentach hostowanych przez firmę Microsoft dla systemów Linux, macOS i Windows. Nie musisz konfigurować jeszcze nic więcej w celu kompilowania projektów języka Python. Aby sprawdzić, które wersje języka Python są wstępnie zainstalowane, zobacz Używanie agenta hostowanego przez firmę Microsoft.

Sforkuj przykładowy kod

Sforkuj przykładowe repozytorium Pythona na swoim koncie GitHub.

  1. Przejdź do repozytorium python-sample-vscode-flask-tutorial.
  2. Wybierz Fork w prawym górnym rogu strony.
  3. Wybierz konto usługi GitHub. Domyślnie rozwidlenie ma taką samą nazwę jak repozytorium nadrzędne, ale można nadać mu inną nazwę.

Ważne

Podczas poniższych procedur może zostać wyświetlony monit o utworzenie połączenia usługi GitHub lub przekierowanie do usługi GitHub w celu zalogowania się, zainstalowania usługi Azure Pipelines lub autoryzowania usługi Azure Pipelines. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby ukończyć proces. Aby uzyskać więcej informacji, zobacz Dostęp do repozytoriów GitHub.

Utwórz swój potok

  1. W projekcie Azure DevOps wybierz Potoki, a potem Utwórz potok, a następnie wybierz GitHub jako lokalizację kodu źródłowego.
  2. Na ekranie Wybierz repozytorium wybierz swoje zforkowane przykładowe repozytorium.
  3. Na ekranie Konfigurowanie potoku , wybierz potok startowy.

Dostosowywanie potoku danych

Na ekranie Przeglądanie potoku YAML, zastąp zawartość wygenerowanego pliku azure-pipelines.yml poniższym kodem. Kod:

  • Instaluje wymagane wersje i zależności języka Python.
  • Pakiety łączą artefakty w archiwum ZIP.
  • Publikuje archiwum do twojej linii przetwarzania.
  • Uruchamia testy.
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'

Dostosuj azure-pipelines.yml , aby dopasować konfigurację projektu.

  • Jeśli masz inną pulę agentów, zmień parametr puli name .
  • W razie potrzeby zmień wersję języka Python na wersję zainstalowaną na własnym agencie.
  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'

Uruchom swój pipeline

Wybierz pozycję Zapisz i uruchom, a następnie wybierz pozycję Zapisz i uruchom ponownie.

Na karcie Podsumowanie jest wyświetlany stan uruchomienia potoku.

Aby wyświetlić artefakt kompilacji, wybierz link opublikowany w karcie Podsumowanie.

Zrzut ekranu przedstawiający link do opublikowanych artefaktów kompilacji.

Na stronie Artefakty są wyświetlane opublikowane artefakty kompilacji. Zrzut ekranu przedstawiający opublikowane wyniki kompilacji.

Zrzut ekranu przedstawiający ukończone zadanie języka Python.

Na stronie Artefakty są wyświetlane opublikowane artefakty kompilacji. Zrzut ekranu przedstawiający link opublikowanych artefaktów kompilacji.

Aby wyświetlić wyniki testu, wybierz kartę Testy .

Zrzut ekranu przedstawiający wyniki testu potoku.

Czyszczenie

Po zakończeniu pracy z tym szybkim startem możesz usunąć utworzony projekt Azure DevOps.

  1. W projekcie wybierz ikonę Ustawienia projektu w kształcie koła zębatego w lewym dolnym rogu strony.
  2. W dolnej części strony przeglądu projektu wybierz pozycję Usuń.
  3. Wprowadź nazwę projektu i wybierz pozycję Usuń.

Gratulacje, pomyślnie utworzono i uruchomiono potok, który skompilował i przetestował aplikację w języku Python. Teraz możesz używać usługi Azure Pipelines do tworzenia, testowania i wdrażania aplikacji i skryptów języka Python w ramach systemu ciągłej integracji i ciągłego dostarczania (CI/CD).

Następne kroki