Python 앱 빌드

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Pipelines를 사용하여 CI/CD 시스템의 일부로 Python 앱 및 스크립트를 빌드, 테스트 및 배포할 수 있습니다.

이 빠른 시작에서는 Python 앱을 빌드하고 테스트하는 파이프라인을 만드는 방법을 알아봅니다.

Python 프로젝트를 빌드하기 위해 Azure Pipelines에 대해 아무것도 설정할 필요가 없습니다. Python은 Linux, macOS 또는 Windows용 Microsoft 호스팅 빌드 에이전트미리 설치됩니다. 사전 설치된 Python 버전을 보려면 Microsoft 호스팅 에이전트 사용을 참조하세요.

필수 조건

  • 리포지토리를 만들 수 있는 GitHub 계정. 체험 계정 만들기
  • Azure DevOps 조직. 체험 계정 만들기
  • Azure DevOps 프로젝트입니다. Azure DevOps 프로젝트 만들기 마법사사용하여 만듭니다.
  • Microsoft 호스팅 에이전트에서 파이프라인을 실행하는 기능. 병렬 작업을 구매하거나 무료 계층을 요청할 수 있습니다.
  • 리포지토리를 만들 수 있는 GitHub 계정. 체험 계정 만들기
  • An Azure DevOps Server.
  • Azure DevOps 프로젝트입니다. Azure DevOps Server 프로젝트 만들기 마법사사용하여 만듭니다.
  • 자체 호스팅 에이전트입니다. 에이전트를 만들려면 자체 호스팅 에이전트를 참조 하세요.
  • 자체 호스팅 에이전트에 설치된 Python 버전입니다. 에이전트에 Python을 설치하는 방법을 알아보려면 UsePythonVersion을 참조하세요.

1. 샘플 코드 포크

샘플 Python 리포지토리를 GitHub 계정에 포크합니다.

  1. python-sample-vscode-flask-tutorial 리포지토리로 이동합니다.
  2. 페이지의 오른쪽 위 모서리에서 포크를 선택합니다.
  3. 리포지토리를 포크할 GitHub 계정을 선택하고 포크된 리포지토리의 이름을 입력합니다.

2. 파이프라인 만들기

  1. Azure Pipelines로 이동하여 무료로 시작을 선택합니다. 메시지가 표시되면 DevOps 계정에 로그인합니다.

  2. 프로젝트로 이동하여 파이프라인 만들기 파이프라인>선택합니다.

  3. 소스 코드의 위치로 GitHub를 선택합니다.

  4. 로그인하기 위해 GitHub로 리디렉션되는 경우 GitHub 자격 증명을 입력합니다.

  5. 리포지토리 목록이 나타나면 포크된 샘플 리포지토리를 선택합니다.

  6. 파이프라인 구성 탭에서 시작 파이프라인을 선택합니다.

  1. 브라우저에서 DevOps Server 컬렉션으로 이동합니다.

  2. 프로젝트로 이동하여 파이프라인 새 파이프라인> 만들기를 선택합니다.

  3. 소스 코드의 위치로 GitHub Enterprise Server를 선택합니다.

  4. 로그인하기 위해 GitHub로 리디렉션되는 경우 GitHub 자격 증명을 입력합니다.

  5. 리포지토리 목록이 나타나면 포크된 샘플 리포지토리를 선택합니다.

  6. 파이프라인 구성 탭에서 시작 파이프라인을 선택합니다.

3. 파이프라인 사용자 지정

생성된 azure-pipelines.yml 파일 콘텐츠를 다음 코드로 바꿉다. 이 코드는 필요한 Python 버전 및 종속성을 설치하고, 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 일치하도록 사용자 지정합니다.

  1. 생성된 YAML을 다음 코드로 바꿉다. 이 코드는 필요한 Python 버전 및 종속성을 설치하고, Python 패키지를 파이프라인에 게시된 zip 파일로 패키지하고, 테스트를 실행합니다.
  2. 다른 에이전트 풀이 있는 경우 풀 name 매개 변수를 변경합니다.
  3. 자체 호스팅 에이전트에 설치된 버전과 일치하도록 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'

4. 파이프라인 실행

파이프라인을 저장하고 실행합니다.

  1. 저장 및 실행을 선택합니다.
  2. 저장 및 실행 대화 상자에서 저장 및 실행을 선택합니다.
  3. 요약 탭에서 파이프라인 실행의 상태 볼 수 있습니다.
  1. 실행을 선택합니다.
  2. 빌드 번호는 페이지 맨 위에 표시됩니다. 빌드 번호를 선택하여 빌드의 세부 정보를 확인합니다.

파이프라인 빌드 링크의 스크린샷.

완료된 Python 작업의 스크린샷

빌드 아티팩트 보기 요약 탭에서 게시된 링크를 선택합니다.

게시된 빌드 아티팩트 링크의 스크린샷.

아티팩트 페이지에 게시된 빌드 아티팩트가 표시됩니다.

게시된 빌드 아티팩트 스크린샷

테스트 결과를 보려면 테스트 탭을 선택합니다.

파이프라인 테스트 결과의 스크린샷.

요약 탭에는 파이프라인 실행의 상태 표시됩니다.

완료된 Python 작업의 스크린샷

빌드 아티팩트 보기는 요약 탭에서 게시된 링크를 선택합니다.

게시된 빌드 아티팩트 링크의 스크린샷.

테스트 결과를 보려면 테스트 탭을 선택합니다.

파이프라인 테스트 결과의 스크린샷.

요약 탭에는 파이프라인 실행의 상태 표시됩니다.

완료된 Python 작업의 스크린샷

빌드 아티팩트 다운로드를 위해 게시된 빌드 아티팩트 섹션에서 삭제 링크를 선택합니다.

테스트 결과를 보려면 테스트 탭을 선택합니다.

파이프라인 테스트 결과의 스크린샷.

정리

이 빠른 시작을 완료하면 Azure DevOps에서 만든 프로젝트를 삭제할 수 있습니다.

  1. 페이지의 왼쪽 아래 모서리에서 프로젝트 설정 기어 아이콘을 선택합니다.
  2. 프로젝트 개요 페이지의 맨 아래에서 삭제를 선택합니다.
  3. 프로젝트 이름을 입력하고 삭제를 선택합니다.

축하합니다. 이 빠른 시작을 성공적으로 완료했습니다.

다음 단계