Azure DevOps Services
파이프라인에서 Python과 함께 Anaconda를 설정하고 사용합니다. Anaconda는 데이터 과학 및 기계 학습을 위한 Python 배포입니다.
필수 조건
Python은 Linux, macOS 및 Windows용 Microsoft 호스팅 에이전트에 미리 설치됩니다. Python 프로젝트를 빌드하기 위해 더 이상 아무것도 설정할 필요가 없습니다. 사전 설치된 Python 버전을 보려면 Software를 참조하세요.
| 제품 | 요구 사항 |
|---|---|
| Azure DevOps | - Azure DevOps 프로젝트. - Microsoft 호스팅 에이전트에서 파이프라인을 실행하는 기능입니다. 병렬 작업을 구매하거나 무료 등급을 요청할 수 있습니다. - YAML 및 Azure Pipelines에 대한 기본 지식 자세한 내용은 첫 번째 파이프라인 만들기를 참조하세요. - 권한: - 파이프라인을 만들려면 참가자 그룹에 있어야 하며 그룹에 빌드 파이프라인 만들기 권한이 허용으로 설정되어 있어야 합니다. 프로젝트 관리자 그룹의 구성원은 파이프라인을 관리할 수 있습니다. 서비스 연결 |
| 깃허브 | - GitHub 계정입니다. - Azure Pipelines에 권한을 부여하는 GitHub 서비스 연결. |
시작하기
다음 지침에 따라 Anaconda 환경이 있는 샘플 Python 앱에 대한 파이프라인을 설정합니다.
Azure DevOps 조직에 로그인하고, 프로젝트로 이동합니다.
프로젝트에서 파이프라인 페이지로 이동합니다. 그런 다음, 작업을 선택하여 새 파이프라인을 만듭니다.
먼저 소스 코드의 위치로 GitHub를 선택하여 마법사의 단계를 진행합니다.
로그인할 GitHub로 리디렉션될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력합니다.
리포지토리 목록이 나타나면 Anaconda 샘플 리포지토리를 선택합니다.
Azure Pipelines는 리포지토리의 코드를 분석하고 기존
azure-pipelines.yml파일을 검색합니다.실행을 선택합니다.
새 실행이 시작됩니다. 실행이 끝날 때까지 기다립니다.
팁
이 문서에 설명된 대로 YAML 파일을 변경하려면 파이프라인 페이지에서 파이프라인을 선택한 다음 파일을 편집 합니다 azure-pipelines.yml .
시스템 경로에 conda 추가
호스트된 에이전트에서 Conda는 Python 버전이 설치된 다른 버전과 충돌하지 않도록 기본적으로 포함되지 PATH 않습니다.
task.prependpath 에이전트 명령을 사용하여 모든 이후 단계에서 conda를 사용할 수 있도록 합니다.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
환경 만들기
명령줄 인수에서
이 conda create 명령은 전달하는 인수를 사용하여 환경을 만듭니다.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
YAML에서
Anaconda 환경에 대한 구성을 정의하는 파일을 리포지토리에 등록할 수 있습니다.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
참고
자체 호스팅 에이전트를 사용하고 마지막에 환경을 제거하지 않으면 환경이 이미 있으므로 다음 빌드에서 오류가 발생합니다. 이 문제를 해결하려면 새 conda env remove --name your-env-name 환경을 만들기 전에 기존 환경을 제거하십시오.
참고
스토리지를 공유하고 동일한 Anaconda 환경을 사용하여 병렬로 작업을 실행하는 자체 호스팅 에이전트를 사용하는 경우 해당 환경 간에 충돌이 발생할 수 있습니다. 이 문제를 해결하려면 --name 인수를 사용하고 고유 식별자를 $(Build.BuildNumber) 빌드 변수와 연결하여 인수 값으로 지정합니다.
Anaconda에서 패키지 설치
다음 YAML은 conda 환경 이름이 scipy인 myEnvironment 패키지를 설치합니다.
- bash: |
conda activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Anaconda 환경에서 파이프라인 단계 실행
참고
각 빌드 단계는 자체 프로세스에서 실행됩니다.
Anaconda 환경을 활성화하면 PATH을 편집하고 현재 프로세스에 다른 변경 사항을 적용합니다.
따라서 각 단계에 대해 Anaconda 환경을 별도로 활성화합니다.
- bash: |
conda activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
자주 묻는 질문(FAQ)
"사용 권한 거부" 오류가 표시되는 이유는 무엇인가요?
호스트된 macOS에서 에이전트 사용자는 Miniconda가 설치된 디렉터리를 소유하지 않습니다. 이 문제를 해결하려면 시스템 경로에 conda 추가 아래의 "호스트된 macOS" 탭으로 이동합니다.
빌드가 conda create 단계나 conda install 단계에서 멈추는 이유는 무엇인가요?
전달 --yes하지 않으면 conda가 중지되고 사용자 입력을 기다립니다.
Windows에서 내 스크립트가 환경을 활성화한 후 중지되는 이유는 무엇인가요?
Windows에서는 activate Batch 스크립트입니다.
call 명령어를 사용하여 활성화 후 스크립트 실행을 다시 시작해야 합니다.
파이프라인에서 사용하는 call예제를 참조하세요.
여러 버전의 Python으로 테스트를 실행하려면 어떻게 해야 하나요?
Azure Pipelines에서 Python 앱 빌드로 이동합니다.