在本地构建和测试软件包 - 截止日期云

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在本地构建和测试软件包

在将软件包发布到 Amazon S3 或在 Deadline Cloud 服务器场上设置 CI/CD 自动化之前,您可以使用本地文件系统通道在工作站上构建和测试 conda 软件包。这种方法可以让您在本地快速迭代配方并验证软件包。

rattler-build publish命令构建配方,将生成的包复制到频道,然后一步为该频道编制索引。当你以本地文件系统目录为目标时,如果该目录不存在,则会自动rattler-build创建和初始化该频道。

以下说明使用了 Deadline Cloud 示例存储库中的 Blender 4.5 示例配方GitHub。您可以替换样本存储库中的其他食谱,也可以使用自己的食谱。

先决条件

在开始之前,请在您的工作站上安装以下工具:

  • pixi — 用于安装rattler-build和测试软件包的软件包管理器。从 pixi.sh 安装 pixi。

  • rattler-build — Deadline Cloud conda 配方使用的软件包构建工具。安装 pixi 后,运行以下命令进行安装rattler-build

    pixi global install rattler-build
  • git — 克隆示例存储库所必需的。在Windows,git f or Windows 还提供了一个bash外壳,这是一些Windows示例配方所需要的。

生成套餐并将其发布到本地频道

在此过程中,您将克隆 Deadline Cloud 示例存储库,然后使用rattler-build publish生成该包并将其发布到本地文件系统频道。

生成软件包并将其发布到本地频道
  1. 克隆截止日期云示例存储库。

    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 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- build 发布文档。

调试版本

如果构建失败,则rattler-build会保留构建目录,以便您可以进行调查。运行以下命令在构建环境中打开一个交互式 shell,其中所有环境变量都与生成期间一样设置。

rattler-build debug shell

在调试 shell 中,您可以修改文件、运行单独的构建命令以及添加依赖关系以隔离问题。有关更多信息,请参阅 rattler-build 文档中的调试构建

测试软件包

生成并发布软件包后,创建一个临时 pixi 项目。使用该项目从本地渠道安装软件包并验证其是否正常运行。

测试软件包
  1. 创建临时测试目录并使用本地频道初始化 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
  2. 将软件包添加到项目中。

    pixi add blender=4.5
  3. 验证软件包是否正常运行。

    pixi run blender --version

如果您对软件包感到满意,则可以将软件包发布到 Amazon S3 conda 频道,这样 Deadline Cloud 工作人员就可以安装该软件包。请参阅将软件包发布到 S3 conda 频道

清理

测试完成后,您可以移除测试项目和本地频道。

清理测试资源
  1. 移除测试项目目录。

    在 Linux and 上macOS,运行以下命令。

    rm -rf package-test-env

    在 Windows (cmd) 上,运行以下命令。

    rmdir /s /q package-test-env
  2. 移除本地 conda 频道目录。

    在 Linux and 上macOS,运行以下命令。

    rm -rf $HOME/my-conda-channel

    在 Windows (cmd) 上,运行以下命令。

    rmdir /s /q %USERPROFILE%\my-conda-channel
  3. (可选)移除包含已生成软件包文件的rattler-build输出目录。

    在 Linux and 上macOS,运行以下命令。

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

    在 Windows (cmd) 上,运行以下命令。

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