包流水线¶
当开发人员向组织存储库的源代码提交更改时,包流水线将为不同的配置和平台构建、创建和上传包二进制文件。例如,如果开发人员对 ai
包进行了一些更改,改进了某些库功能,并将版本提升到 ai/1.1.0
。如果组织需要同时支持 Windows 和 Linux 平台,那么包流水线将为 Windows 和 Linux 构建新的 ai/1.1.0
,然后才认为这些更改有效。如果某些配置在特定平台下构建失败,通常会认为更改无效并停止处理这些更改,直到代码修复为止。
对于包流水线
,我们将从 ai
配方中的一个简单源代码更改开始,模拟 ai
包的一些改进,为我们的游戏提供更好的算法。
让我们在 ai 包中进行以下更改::
让我们更改
ai/src/ai.cpp
函数的实现,并将消息从Some Artificial
更改为SUPER BETTER Artificial
。让我们将
ai/include/ai.h
中的默认intelligence=0
值更改为新的默认值intelligence=50
。最后,让我们提升版本。由于我们对包的公共头文件进行了一些更改,建议提升
次要
版本,因此我们编辑ai/conanfile.py
文件,并在此处定义version = "1.1.0"
(而不是之前的1.0
)。请注意,如果我们对ai
公共 API 进行了破坏性更改,建议是更改主版本并创建新的2.0
版本。
包流水线将负责为新的 ai/1.1.0
构建不同的包二进制文件,并将它们上传到 packages
二进制存储库,以避免中断或对其他开发人员和 CI 作业造成潜在问题。如果流水线成功,它将把它们提升(复制)到 products
二进制存储库,否则停止。
在为 ai/1.1.0
构建这些二进制包时,需要考虑不同的方面。以下教程部分执行相同的工作,但基于不同的假设。它们以递增的复杂性进行解释。
请注意,所有命令都可以在存储库的 run_example.py
文件中找到。此文件主要用于维护者和测试,但在出现问题时可能作为参考很有用。