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 tym przewodniku Szybki start utworzysz potok, który kompiluje i testuje aplikację w języku 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.

Rozwidlenie przykładowego kodu

Rozwidlenie przykładowego repozytorium języka Python na koncie usługi GitHub.

  1. Przejdź do repozytorium python-sample-vscode-flask-tutorial .
  2. Wybierz pozycję Rozwidlenie 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 Access to GitHub repozytoria.

Tworzenie potoku

  1. W projekcie usługi Azure DevOps wybierz pozycję Potoki>Utwórz potok, a następnie wybierz pozycję GitHub jako lokalizację kodu źródłowego.
  2. Na ekranie Wybieranie repozytorium wybierz rozwidlenie przykładowego repozytorium.
  3. Na ekranie Konfigurowanie potoku wybierz pozycję Potok startowy.

Dostosowywanie potoku

Na ekranie Przeglądanie potoku YAML zastąp zawartość wygenerowanego pliku azure-pipelines.yml następującym kodem. Kod:

  • Instaluje wymagane wersje i zależności języka Python.
  • Pakiety tworzą artefakty do archiwum ZIP.
  • Publikuje archiwum w potoku.
  • 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'

Uruchamianie potoku

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 opublikowany link na karcie Podsumowanie .

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

Na stronie Artefakty są wyświetlane opublikowane artefakty kompilacji. Zrzut ekranu przedstawiający opublikowane artefakty 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.

Wybierz Uruchom.

Numer kompilacji jest wyświetlany w górnej części strony. Wybierz numer kompilacji, aby wyświetlić szczegóły kompilacji.

Zrzut ekranu przedstawiający link kompilacji potoku.

Na karcie Podsumowanie jest wyświetlany stan uruchomienia potoku.

Aby pobrać artefakt kompilacji, wybierz link upuszczania z opublikowanej sekcji Tworzenie artefaktów.

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

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

Zrzut ekranu przedstawiający wyniki testu potoku.

Czyszczenie

Po zakończeniu pracy z tym przewodnikiem Szybki start możesz usunąć utworzony projekt usługi Azure DevOps.

  1. W projekcie wybierz ikonę koła zębatego Ustawienia projektu 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

Wdrażanie aplikacji internetowej w języku Python w usłudze aplikacja systemu Azure przy użyciu ciągłej integracji/ciągłego wdrażania.