构建¶
在 Odoo.sh 平台中,构建指的是在容器化环境下,基于项目代码仓库特定版本,由 Odoo 服务器(对应代码仓库:odoo/odoo 与 odoo/enterprise)加载的数据库实例。构建的目的是测试该版本对应的服务器运行状态、数据库可用性,以及相关功能的正常表现。
概述¶
在 :guilabel:`构建`视图中,每一行代表一个分支,该行内的每个单元格代表对应分支的一次构建任务。
大多数构建任务会在代码推送至 GitHub 仓库分支后自动触发;此外,通过其他操作也可创建构建任务,例如在 Odoo.sh 平台导入数据库,或为项目中的指定分支发起重建请求。
构建任务包含三种可能的状态:
成功:构建过程中未出现任何错误或警告,此类构建任务会以**绿色**高亮显示。
准成功:构建过程中出现警告但无错误,此类构建任务会以**黄色**高亮显示。
失败:构建过程中出现错误,此类构建任务会以**红色**高亮显示。
注解
构建任务并非始终从零创建数据库。例如,向正式运行分支推送代码变更时,新创建的构建任务会基于您提交的新版本启动服务器,并尝试将当前的正式运行数据库加载到该服务器中。
阶段¶
生产¶
正式运行分支的首次构建会从零创建数据库。若此次构建成功,该数据库将成为项目的正式运行数据库。
此后,每当向正式运行分支推送代码变更,都会触发新的构建任务。这些任务会尝试通过运行新版本代码的服务器来加载数据库。
若构建状态为 “成功” 或 “准成功”,正式运行数据库将基于该构建任务及其对应的代码版本运行。
若构建过程中数据库加载或更新失败,则会复用上一次成功的构建任务来加载数据库,此时数据库仍会基于上一个成功的代码版本继续运行。
注解
用于正式运行数据库的构建任务始终显示在构建列表的首位。若某一次构建失败,该任务会被排在当前正式运行数据库的构建任务之后。
预发布¶
预发布分支的构建任务会复制一份生产数据库,并尝试使用预发布分支的代码版本加载该副本。
每当您向预发布分支推送新版本代码,生成的构建任务都会使用全新的正式运行数据库副本(同一分支的不同构建任务之间不会复用数据库)。这确保了:
预发布分支的构建任务使用的数据库与当前正式运行环境状态高度一致,避免测试基于过时数据进行;
您可在预发布数据库中自由进行各类测试实验。若需基于全新的正式运行数据库副本重新测试,可手动发起 “重建” 请求。
但需注意,若您在预发布数据库中做了配置变更,却未将这些变更同步到正式运行环境,那么该预发布分支下一次构建时,这些变更将不会出现在新的数据库副本中。
开发¶
开发分支的构建任务会创建全新的数据库,加载演示数据并运行单元测试。
如果测试在安装过程中失败,构建将被视为失败,因为测试的目的是在出现问题时引发错误。
如果所有测试都通过且未出现错误,则认为构建成功。
注解
根据需要安装和测试的模块列表,开发构建可能需要一个小时才能准备就绪。这是因为默认的 Odoo 模块套件包含大量测试。
功能¶
正式运行分支总是先出现。其他分支按最后创建的时间排序。紫色高亮显示的阶段对应于在 分支 菜单中选择的阶段。
小技巧
您可以使用搜索栏筛选分支。
对于每个分支,您可以:
点击 连接 访问最新版本的数据库。
点击 Github 跳转到该分支的代码。
点击 重建 创建新的构建。它会使用分支的最新版本(如果该分支已在进行构建,则无法使用)。
对于每种构建,您可以:
点击 )图标,查看修订变更。
点击 连接 以管理员身份访问构建数据库,或点击 连接 旁边的 :icon:`fa-caret-down`( :guilabel:`更多操作`)按钮并选择 连接为,以其他用户身份访问构建数据库。
点击 连接 旁边的 )按钮并选择 日志、网页 Shell `、:guilabel:`编辑器、:guilabel:
发送电子邮件`(用于暂存和开发阶段)、:guilabel: `监控和 :guilabel:`下载数据库转储`(用于生产和暂存阶段)。