包管道:单配置¶
我们将从最简单的案例开始,其中我们只需要构建 1 个配置,并且该配置可以在当前的 CI 机器上构建。
正如我们之前在介绍不同的服务器二进制仓库时所描述的,其想法是包构建默认只使用被认为是开发者和 CI 作业的稳定仓库 develop
。
此管道从干净状态开始,缓存中没有包,并且只启用了 develop
仓库。
通过此配置,CI 作业可以简单地执行
$ cd ai
$ conan create . --build="missing:ai/*"
...
ai/1.1.0: SUPER BETTER Artificial Intelligence for aliens (Release)!
ai/1.1.0: Intelligence level=50
请注意,在某些情况下 --build="missing:ai/*"
可能不是完全必需的,但在其他情况下可以节省时间。例如,如果开发者仅对仓库 README 进行了更改,并且完全没有提高版本,Conan 将不会生成新的 recipe revision
,并将其检测为无操作 (no-op),从而避免不必要地从源代码重建二进制文件。
如果在单配置场景中构建正确,对于这个简单的案例,我们不需要提升,只需将构建好的包直接上传到 products
仓库就足够了,products pipeline
稍后将在此处获取它们。
# We don't want to disrupt developers or CI, upload to products
$ conan remote enable products
$ conan upload "ai*" -r=products -c
$ conan remote disable products
由于缓存最初是干净的,所有 ai
包将是此管道中构建的包。
这是一个非常简单的场景,让我们转向一个更现实的场景:必须构建不止一个配置。