다음을 통해 공유


Python 앱 빌드 및 게시

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

이 빠른 시작에서는 Python 앱을 빌드하고 테스트하는 파이프라인을 만듭니다. Azure Pipelines를 사용하여 CI/CD(지속적인 통합 및 지속적인 업데이트) 시스템의 일부로 Python 앱 및 스크립트를 빌드, 테스트 및 배포하는 방법을 알아봅니다.

필수 조건

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

  • 리포지토리를 만들 수 있는 GitHub 계정. 무료로 GitHub 계정을 만듭니다.
  • Azure DevOps 조직. 체험 계정 만들기
  • Azure DevOps 프로젝트입니다. Azure DevOps 프로젝트 만들기 마법사를 사용하여 만듭니다.
  • 자체 호스팅 에이전트입니다. 에이전트를 만들려면 자체 호스팅 에이전트를 참조 하세요.
  • 자체 호스팅 에이전트에 설치된 Python입니다. 에이전트에 Python을 설치하려면 UsePythonVersion을 참조하세요.

샘플 코드 포크

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

  1. python-sample-vscode-flask-tutorial 리포지토리로 이동합니다.
  2. 페이지의 오른쪽 위 모서리에서 포크를 선택합니다.
  3. GitHub 계정을 선택합니다. 기본적으로 포크의 이름은 부모 리포지토리와 동일하지만 이름을 다르게 지정할 수 있습니다.

Important

다음 절차 중에 GitHub 서비스 연결을 만들라는 메시지가 표시되거나 GitHub로 리디렉션되어 로그인, Azure Pipelines 설치 또는 Azure Pipelines 권한을 부여할 수 있습니다. 화면의 지침에 따라 프로세스를 완료합니다. 자세한 내용은 GitHub 리포지토리에 대한 액세스를 참조 하세요.

파이프라인 만들기

  1. Azure DevOps 프로젝트에서 파이프라인>만들기 파이프라인을 선택한 다음, 소스 코드의 위치로 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를 사용하여 CI/CD(지속적인 통합 및 지속적인 업데이트) 시스템의 일부로 Python 앱 및 스크립트를 빌드, 테스트 및 배포할 수 있습니다.

다음 단계