openSUSE:构建服务概念 构建调度策略

跳转到:导航搜索

构建调度策略

OBS 2.0(及更高版本)提供了两种机制来修改作业调度的默认行为。这些可以通过项目元信息中每个仓库的属性来设置。

您可以使用 Web UI,进入YOUR_PROJECT,图片中的openSUSE:Factory,然后单击Meta选项卡链接,位于AttributesStatus旁边

或者您可以使用 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:将项目链接中的包像本地包一样对待