openSUSE:构建服务概念 构建调度策略
构建调度策略
OBS 2.0(及更高版本)提供了两种机制来修改作业调度的默认行为。这些可以通过项目元信息中每个仓库的属性来设置。
您可以使用 Web UI,进入YOUR_PROJECT,图片中的openSUSE:Factory,然后单击Meta选项卡链接,位于Attributes和Status旁边
或者您可以使用 OSC
osc meta prj -e YOUR_PROJECT
# Example
<repository name="standard" rebuild="transitive" block="all" linkedbuild="off">
...
</repository>
构建触发设置
构建触发设置可以通过rebuild属性设置。可能的设置是
- transitive:默认行为,对所有依赖包进行干净构建
- direct:仅构建具有更改源和直接依赖包的包。但不构建间接依赖包。
- local:仅构建具有更改源的包。
注意:如果您选择“direct”或“local”而未在构建状态中注意到这一点,可能会遇到依赖问题。您的软件包可能无法安装或在运行时出现随机错误(例如无法启动或崩溃应用程序),即使它们声称“成功”。您也无法确定以后是否能够重新构建它们。因此,切勿使用此设置进行发布的官方交付。
阻塞模式
通常,当构建构建它所需的包时,包的构建会被阻塞。block属性可以修改此行为
- all:默认行为,如果依赖包正在构建中,则不开始构建。
- local:仅关心项目中的包进行阻塞模式。
- never:永远不要将包设置为阻塞状态。
注意:如果您使用“all”以外的其他设置,您将不得不处理许多问题
- 中间构建可能存在依赖性和运行时问题。
- 您的软件包将被构建得更频繁,占用服务器侧的更多资源。因此,调度器会降低您仓库的优先级。
链接
linkedbuild的有效值
- off:默认:不构建项目链接中的包
- localdep:仅当它们依赖于本地包时才构建项目链接的包
- alldirect:仅构建链接项目中直接的包,但跳过链接项目链接到的任何包(在OBS-2.11中可用)
- all:将项目链接中的包像本地包一样对待
