View a markdown version of this page

로컬에서 패키지 빌드 및 테스트 - 기한 클라우드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

로컬에서 패키지 빌드 및 테스트

Amazon S3에 패키지를 게시하거나 Deadline Cloud 팜에서 CI/CD 자동화를 설정하기 전에 로컬 파일 시스템 채널을 사용하여 워크스테이션에서 conda 패키지를 빌드하고 테스트할 수 있습니다. 이 접근 방식을 사용하면 레시피를 로컬에서 빠르게 반복하고 패키지를 확인할 수 있습니다.

rattler-build publish 명령은 레시피를 빌드하고, 결과 패키지를 채널에 복사하고, 한 번에 채널을 인덱싱합니다. 로컬 파일 시스템 디렉터리를 대상으로 지정하면 디렉터리가 없는 경우가 자동으로 채널을 rattler-build 생성하고 초기화합니다.

다음 지침은 Blender의 Deadline Cloud 샘플 리포지토리의 4.5 샘플 레시피를 사용합니다GitHub. 샘플 리포지토리에서 다른 레시피를 대체하거나 자체 레시피를 사용할 수 있습니다.

사전 조건

시작하기 전에 워크스테이션에 다음 도구를 설치합니다.

  • pixi - 패키지를 설치하고 테스트rattler-build하는 데 사용하는 패키지 관리자입니다. pixi.sh pixi를 설치합니다.

  • 래틀러 빌드 - Deadline Cloud conda 레시피에서 사용하는 패키지 빌드 도구입니다. pixi를 설치한 후 다음 명령을 실행하여를 설치합니다rattler-build.

    pixi global install rattler-build
  • git - 샘플 리포지토리를 복제하는 데 필요합니다. 에서 용 Windowsgit는 일부 Windows 샘플 레시피에 필요한 bash쉘도 제공합니다. Windows

로컬 채널에 패키지 빌드 및 게시

이 절차에서는 Deadline Cloud 샘플 리포지토리를 복제하고 rattler-build publish를 사용하여 패키지를 빌드하고 로컬 파일 시스템 채널에 게시합니다.

참고

대규모 애플리케이션은 소스 아카이브, 추출된 파일 및 빌드 출력을 위해 수십 GB의 여유 디스크 공간이 필요할 수 있습니다. 패키지 빌드 출력을 위해 사용 가능한 공간이 충분한 디스크를 사용해야 합니다.

로컬 채널에 패키지를 빌드하고 게시하려면
  1. Deadline Cloud 샘플 리포지토리를 복제합니다.

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git
  2. 디렉터리를 conda_recipes로 변경합니다.

    cd deadline-cloud-samples/conda_recipes
  3. 다음 명령을 실행하여 Blender 4.5 레시피를 빌드하고 패키지를 로컬 채널 디렉터리에 게시합니다.

    Linux 및에서 다음 명령을 macOS실행합니다.

    rattler-build publish blender-4.5/recipe/recipe.yaml \ --to file://$HOME/my-conda-channel \ --build-number=+1

    Windows (cmd)에서 다음 명령을 실행합니다.

    rattler-build publish blender-4.5/recipe/recipe.yaml ^ --to file://%USERPROFILE%/my-conda-channel ^ --build-number=+1

    rattler-build publish 명령은 다음 작업을 수행합니다.

    • 레시피에서 패키지를 빌드합니다.

    • 디렉터리가 없는 경우 채널 디렉터리를 생성합니다.

    • 패키지 파일을 채널에 복사합니다.

    • 패키지 관리자가 패키지를 찾을 수 있도록 채널을 인덱싱합니다.

    패키지 레시피가 conda-forge와 같은 특정 채널의 패키지에 의존하는 경우 명령에 -c conda-forge를 추가합니다.

빌드 번호 정보

--build-number=+1 옵션은 대상 채널에 이미 있는 빌드 번호를 기반으로 다음 빌드 번호를 자동으로 선택합니다. 채널에서 패키지를 덮어쓰지 않는 것이 가장 좋습니다. 패키지의 파일 이름이 동일한 경우 항상 새 빌드 번호로 빌드합니다. 를 사용하면 프로덕션 채널 또는 프로덕션을 미러링하는 스테이징 채널에 빌드할 때 이를 --build-number=+1 달성할 수 있습니다.

빌드 번호를 직접 제어하려면와 같은 특정 값으로 설정할 수 있습니다--build-number=7. 옵션을 생략하면는 recipe.yaml 파일에 정의된 빌드 번호를 rattler-build 사용합니다.

에 대한 자세한 내용은 래틀러 빌드 게시 설명서를 rattler-build publish참조하세요.

빌드 디버깅

빌드에 실패하면는 사용자가 조사할 수 있도록 빌드 디렉터리를 rattler-build 보존합니다. 다음 명령을 실행하여 모든 환경 변수가 빌드 중에 설정된 상태로 빌드 환경에서 대화형 셸을 엽니다.

rattler-build debug shell

디버그 쉘에서 파일을 수정하고, 개별 빌드 명령을 실행하고, 종속성을 추가하여 문제를 격리할 수 있습니다. 자세한 내용은 래틀러 빌드 설명서의 빌드 디버깅을 참조하세요.

패키지 테스트

패키지를 빌드하고 게시한 후 임시 pixi 프로젝트를 생성합니다. 프로젝트를 사용하여 로컬 채널에서 패키지를 설치하고 올바르게 작동하는지 확인합니다.

패키지를 테스트하려면
  1. 임시 테스트 디렉터리를 생성하고 로컬 채널로 pixi 프로젝트를 초기화합니다.

    Linux 및에서 다음 명령을 macOS실행합니다.

    mkdir package-test-env cd package-test-env pixi init --channel file://$HOME/my-conda-channel

    Windows (cmd)에서 다음 명령을 실행합니다.

    mkdir package-test-env cd package-test-env pixi init --channel file://%USERPROFILE%/my-conda-channel
  2. 프로젝트에 패키지를 추가합니다.

    pixi add blender=4.5
  3. 패키지가 올바르게 작동하는지 확인합니다.

    pixi run blender --version

    pixi run 명령은 프로젝트 디렉터리에 대한 conda 환경을 활성화하고 그 안에서 지정된 명령을 실행합니다. 환경은 프로젝트 디렉터리에 유지되므로 다른 터미널에서 동일한 pixi run 명령을 사용할 수 있습니다.

패키지에 만족하면 Amazon S3 conda 채널에 패키지를 게시하여 Deadline Cloud 작업자가 패키지를 설치할 수 있도록 할 수 있습니다. S3 conda 채널에 패키지 게시를 참조하세요.

채널에서 패키지 제거

lockfile은 해시로 특정 패키지를 참조하므로 프로덕션에 사용하는 채널에서 패키지를 제거하지 마세요. 패키지를 제거하면 해당 잠금 파일에서 환경을 다시 생성할 수 없습니다. 개발 및 테스트 채널의 경우 채널 디렉터리에서 .conda 파일을 삭제한 다음 채널을 다시 인덱싱하여 특정 패키지를 제거할 수 있습니다. 먼저를 설치합니다rattler-index.

pixi global install rattler-index

그런 다음 패키지 파일을 삭제하고 채널을 다시 인덱싱합니다.

Linux 및에서 다음 명령을 macOS실행합니다.

rm $HOME/my-conda-channel/linux-64/blender-4.5.0-hb0f4dca_1.conda rattler-index fs $HOME/my-conda-channel

Windows (cmd)에서 다음 명령을 실행합니다.

del %USERPROFILE%\my-conda-channel\win-64\blender-4.5.0-hb0f4dca_1.conda rattler-index fs %USERPROFILE%\my-conda-channel

패키지 파일은 linux-64, win-64또는와 같은 플랫폼별 하위 디렉터리에 저장됩니다osx-arm64. 이러한 하위 디렉터리의 내용을 나열하여 제거하려는 패키지의 정확한 파일 이름을 찾습니다.

정리

테스트 후 테스트 프로젝트와 로컬 채널을 제거할 수 있습니다.

테스트 리소스를 정리하려면
  1. 테스트 프로젝트 디렉터리를 제거합니다.

    Linux 및에서 다음 명령을 macOS실행합니다.

    rm -rf package-test-env

    Windows (cmd)에서 다음 명령을 실행합니다.

    rmdir /s /q package-test-env
  2. 로컬 conda 채널 디렉터리를 제거합니다.

    Linux 및에서 다음 명령을 macOS실행합니다.

    rm -rf $HOME/my-conda-channel

    Windows (cmd)에서 다음 명령을 실행합니다.

    rmdir /s /q %USERPROFILE%\my-conda-channel
  3. (선택 사항) 빌드된 패키지 파일이 포함된 rattler-build 출력 디렉터리를 제거합니다.

    Linux 및에서 다음 명령을 macOS실행합니다.

    rm -rf deadline-cloud-samples/conda_recipes/output

    Windows (cmd)에서 다음 명령을 실행합니다.

    rmdir /s /q deadline-cloud-samples\conda_recipes\output