[python] Poetry를 사용하여 파이썬 가상 환경을 CI/CD 파이프라인에 통합하여 각 단계에서 필요한 환경을 자동으로 구성할 수 있습니다.

파이썬 개발 시 가상 환경은 매우 중요합니다. 가상 환경을 사용하면 프로젝트마다 독립적인 파이썬 환경을 구성할 수 있으며, 각 프로젝트의 종속성을 격리하여 버전 충돌을 방지할 수 있습니다. CI/CD 파이프라인을 구축하는 경우, 각 단계에서 필요한 환경을 자동으로 구성할 수 있도록 파이썬 가상 환경을 통합해야 합니다.

이를 위해 Poetry를 사용하여 파이썬 가상 환경을 CI/CD 파이프라인에 통합할 수 있습니다. Poetry는 파이썬 패키지 관리자이자 의존성 관리 도구로, 가상 환경을 쉽게 구성하고 관리할 수 있도록 도와줍니다.

Poetry 설치

Poetry를 사용하기 위해서는 먼저 Poetry를 설치해야 합니다. 다음은 Poetry를 설치하는 명령어입니다.

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/1.1.6/get-poetry.py | python -

또는 Windows에서는 아래 명령어를 사용할 수 있습니다.

(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/1.1.6/get-poetry.py -UseBasicParsing).Content | python -

Poetry를 설치한 후에는 poetry 명령어를 사용할 수 있게 됩니다.

Poetry를 통한 가상 환경 구성

Poetry를 사용하여 가상 환경을 구성하는 방법은 다음과 같습니다.

  1. 프로젝트 디렉토리로 이동합니다.
cd my_project
  1. Poetry로 가상 환경을 생성합니다.
poetry init

위 명령어를 실행하면 프로젝트의 종속성 및 환경 설정에 대한 정보를 입력할 수 있는 대화형 화면이 표시됩니다. 이때 필요한 정보를 입력하면 Poetry는 pyproject.toml 파일을 생성하여 프로젝트의 설정을 저장합니다.

  1. 종속성을 추가합니다.
poetry add 패키지이름

위 명령어를 사용하여 프로젝트에 종속성을 추가할 수 있습니다. Poetry는 pyproject.toml 파일을 업데이트하고 종속성을 설치합니다.

  1. 가상 환경을 활성화합니다.
poetry shell

위 명령어를 실행하면 Poetry로 생성한 가상 환경으로 전환됩니다. 이후 해당 환경에서는 프로젝트에 추가한 패키지를 사용할 수 있습니다.

CI/CD 파이프라인에 Poetry 통합하기

CI/CD 파이프라인에 Poetry를 통합하려면 다음 단계를 따르면 됩니다.

  1. 프로젝트에 .gitlab-ci.yml 또는 .travis.yml 등의 CI/CD 설정 파일을 추가합니다.

  2. 설정 파일에서 Poetry를 설치하고 가상 환경을 구성하는 단계를 추가합니다.

# .gitlab-ci.yml 파일 예시
image: python:3.8

before_script:
  - curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/1.1.6/get-poetry.py | python -
  - source $HOME/.poetry/env
  - poetry install

stages:
  - test

test:
  stage: test
  script:
    - pytest

위 예시에서는 before_script 항목에서 Poetry를 설치하고 가상 환경을 구성한 후, test 단계에서 pytest를 실행하는 것을 볼 수 있습니다.

마무리

Poetry를 사용하여 파이썬 가상 환경을 CI/CD 파이프라인에 통합하면 각 단계에서 필요한 환경을 자동으로 구성할 수 있습니다. 이를 통해 프로젝트의 종속성을 관리하고 버전 충돌을 방지할 수 있으며, 효과적인 CI/CD 프로세스를 구축할 수 있습니다.

참고: Poetry 공식 문서