Создание и публикация приложения Python

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

В этом кратком руководстве вы создадите конвейер, который создает и тестирует приложение Python. Вы узнаете, как использовать Azure Pipelines для создания, тестирования и развертывания приложений и сценариев Python в рамках системы непрерывной интеграции и непрерывной доставки (CI/CD).

Необходимые компоненты

Python предварительно установлен в агентах, размещенных в Майкрософт для Linux, macOS и Windows. Вам не нужно ничего больше настраивать для создания проектов Python. Чтобы узнать, какие версии Python предварительно установлены, см. статью "Использование размещенного корпорацией Майкрософт агента".

Вилка примера кода

Вилку примера репозитория Python в учетную запись GitHub.

  1. Перейдите в репозиторий python-sample-vscode-flask-tutorial .
  2. Выберите Вилку в правом верхнем углу страницы.
  3. Выберите учетную запись GitHub. По умолчанию вилка называется так же, как родительский репозиторий, но его можно назвать другим.

Внимание

В следующих процедурах может потребоваться создать подключение службы GitHub или перенаправить на GitHub для входа, установки Azure Pipelines или авторизации Azure Pipelines. Следуйте инструкциям на экране, чтобы завершить процесс. Дополнительные сведения см. в разделе Access к репозиториям GitHub.

Создание конвейера

  1. В проекте Azure DevOps выберите Pipelines Create Pipelines>, а затем выберите GitHub в качестве расположения исходного кода.
  2. На экране "Выбор репозитория" выберите вилку репозитория.
  3. На экране "Настройка конвейера" выберите "Начальный конвейер".

Настройка конвейера

На экране проверки конвейера YAML замените содержимое созданного azure-pipelines.yml файла следующим кодом. Код.

  • Устанавливает необходимые версии Python и зависимости.
  • Пакеты создают артефакты в ZIP-архив.
  • Публикует архив в конвейере.
  • Выполняет тесты
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'

Настройте azure-pipelines.yml в соответствии с конфигурацией проекта.

  • Если у вас другой пул агентов, измените параметр пула name .
  • При необходимости измените версию Python на версию, установленную на локальном агенте.
  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'

Выполнение конвейера

Нажмите кнопку "Сохранить и запустить", а затем нажмите кнопку "Сохранить" и снова запустить.

На вкладке "Сводка " отображается состояние запуска конвейера.

Чтобы просмотреть артефакт сборки, выберите опубликованную ссылку на вкладке "Сводка".

Снимок экрана: ссылка на опубликованные артефакты сборки.

На странице "Артефакты" показаны опубликованные артефакты сборки. Снимок экрана: опубликованные артефакты сборки.

Снимок экрана: завершенное задание Python.

На странице "Артефакты" показаны опубликованные артефакты сборки. Снимок экрана: ссылка на опубликованные артефакты сборки.

Чтобы просмотреть результаты теста, перейдите на вкладку "Тесты ".

Снимок экрана: результаты теста конвейера.

Выберите Выполнить.

Номер сборки отображается в верхней части страницы. Выберите номер сборки, чтобы просмотреть сведения о сборке.

Снимок экрана: ссылка на сборку конвейера.

На вкладке "Сводка " отображается состояние запуска конвейера.

Чтобы скачать артефакт сборки, выберите ссылку раскрывающегося списка из опубликованного раздела "Артефакты сборки".

Снимок экрана: завершенное задание Python.

Чтобы просмотреть результаты теста, перейдите на вкладку "Тесты ".

Снимок экрана: результаты теста конвейера.

Очистка

Завершив работу с этим кратким руководством, вы можете удалить созданный проект Azure DevOps.

  1. В проекте выберите значок шестеренки параметров проекта в левом нижнем углу страницы.
  2. В нижней части страницы обзора проекта нажмите кнопку "Удалить".
  3. Введите имя проекта и нажмите кнопку "Удалить".

Поздравляем, вы успешно создали и запустили конвейер, который создал и протестировал приложение Python. Теперь вы можете использовать Azure Pipelines для создания, тестирования и развертывания приложений и сценариев Python в рамках системы непрерывной интеграции и непрерывной доставки (CI/CD).

Следующие шаги