本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在本地构建和测试软件包
在将软件包发布到 Amazon S3 或在 Deadline Cloud 服务器场上设置 CI/CD 自动化之前,您可以使用本地文件系统通道在工作站上构建和测试 conda 软件包。这种方法可以让您在本地快速迭代配方并验证软件包。
该rattler-build publish命令构建配方,将生成的包复制到频道,然后一步为该频道编制索引。当你以本地文件系统目录为目标时,如果该目录不存在,则会自动rattler-build创建和初始化该频道。
以下说明使用了 Deadline Cloud
先决条件
在开始之前,请在您的工作站上安装以下工具:
生成套餐并将其发布到本地频道
在此过程中,您将克隆 Deadline Cloud 示例存储库,然后使用rattler-build publish生成该包并将其发布到本地文件系统频道。
生成软件包并将其发布到本地频道
-
克隆截止日期云示例存储库。
git clone https://github.com/aws-deadline/deadline-cloud-samples.git -
切换到
conda_recipes目录。cd deadline-cloud-samples/conda_recipes -
运行以下命令构建 Blender 4.5 配方并将软件包发布到本地频道目录。
在 Linux and 上macOS,运行以下命令。
rattler-build publish blender-4.5/recipe/recipe.yaml \ --to file://$HOME/my-conda-channel在 Windows (cmd) 上,运行以下命令。
rattler-build publish blender-4.5/recipe/recipe.yaml ^ --to file://%USERPROFILE%/my-conda-channel该
rattler-build publish命令执行以下操作:-
根据配方构建软件包。
-
如果频道目录不存在,则创建该目录。
-
将软件包文件复制到频道。
-
为频道编制索引,以便包管理员可以找到该软件包。
如果你的包配方依赖于来自特定渠道(例如 conda-forge
)的软件包,请 -c conda-forge添加到命令中。 -
要在对配方进行更改后重新生成软件包,请添加--build-number=+1以自动增加内部版本号。
rattler-build publish blender-4.5/recipe/recipe.yaml \ --to file://$HOME/my-conda-channel \ --build-number=+1
有关更多信息rattler-build publish,请参阅 rattler-
调试版本
如果构建失败,则rattler-build会保留构建目录,以便您可以进行调查。运行以下命令在构建环境中打开一个交互式 shell,其中所有环境变量都与生成期间一样设置。
rattler-build debug shell
在调试 shell 中,您可以修改文件、运行单独的构建命令以及添加依赖关系以隔离问题。有关更多信息,请参阅 rattler-build 文档中的调试构建
测试软件包
生成并发布软件包后,创建一个临时 pixi 项目。使用该项目从本地渠道安装软件包并验证其是否正常运行。
测试软件包
-
创建临时测试目录并使用本地频道初始化 pixi 项目。
在 Linux an macOS d 上,运行以下命令。
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 -
将软件包添加到项目中。
pixi add blender=4.5 -
验证软件包是否正常运行。
pixi run blender --version
如果您对软件包感到满意,则可以将软件包发布到 Amazon S3 conda 频道,这样 Deadline Cloud 工作人员就可以安装该软件包。请参阅将软件包发布到 S3 conda 频道。
清理
测试完成后,您可以移除测试项目和本地频道。
清理测试资源
-
移除测试项目目录。
在 Linux and 上macOS,运行以下命令。
rm -rf package-test-env在 Windows (cmd) 上,运行以下命令。
rmdir /s /q package-test-env -
移除本地 conda 频道目录。
在 Linux and 上macOS,运行以下命令。
rm -rf $HOME/my-conda-channel在 Windows (cmd) 上,运行以下命令。
rmdir /s /q %USERPROFILE%\my-conda-channel -
(可选)移除包含已生成软件包文件的
rattler-build输出目录。在 Linux and 上macOS,运行以下命令。
rm -rf deadline-cloud-samples/conda_recipes/output在 Windows (cmd) 上,运行以下命令。
rmdir /s /q deadline-cloud-samples\conda_recipes\output