在我们的CI流程中,我们执行以下操作:
conda build
创建一个conda包,将输出文件夹设置为./build conda install -c ./build package_name
安装新创建的软件包。第二步是在CI的第二阶段,当我们进行测试时,我们只是调用pytest来运行CI环境中的所有测试文件,并使用新安装的package_name
包。
注意package_name
具有定义包的meta.yaml文件中列出的内部依赖项another_package_name
。
我们发现的一件事是,在第1步和第2步中,another_package_name
的版本不同,在构建软件包时,conda似乎能够获取依赖关系的最新版本。不过,在第2步中,conda似乎正在选择依赖项的旧版本。
我有一些其他发现:
package_name
和another_package_name
都发布到我们用于内部渠道的文件位置(使用普通cp *.tar.bz2
命令)这阻碍了我们拥有适当的功能CI。而且我们无法找出./build
步骤的结果以及为什么它选择了错误的依赖关系版本。
有什么想法吗?