部署/发布

Home Assistant Operating System 的发布版本从 release 分支构建。所有公开发布都使用 GitHub Actions 构建。没有固定的发布时间表,构建会由 HAOS 维护者按需触发。变更需要先应用到开发分支,并打上 rel-x 标签。维护者会在下一个发布前将这些补丁回移植到 release 分支。

Branches

  • dev:开发分支。在开发期间承载下一个主版本。在发布候选阶段,release candidate 会在此分支上打标签。
  • rel-X:发布分支。每个主版本一个。通常新发布只会从最新的主版本发布分支进行构建。每个发布都会使用其版本号打标签。

Versioning

版本格式为 MAJOR.BUILD。每次发布一个新版本时,BUILD 号都会递增(存储在 buildroot-external/meta 中)。MAJOR 号继承自开发分支,并会在创建发布分支后立即提升。

构建系统默认会自动添加一个 dev{DATE} 后缀,以标记开发构建。

在新的主版本发布前,可以在开发分支上构建 release candidate,并使用发布候选后缀进行标记,例如 MAJOR.0.rc1

Deployment types

HAOS 提供 3 种不同的部署类型。它们的区别在于所包含的 OTA 更新公钥不同。部署类型会显示在 Supervisor Web 前端的 System 标签页中的 Host 卡片上。

  • development (dev)
  • staging (beta)
  • production (stable)

Build pipelines

GitHub Actions 用于构建 HAOS 开发版和发布版。共有两个工作流:

  • .github/workflows/dev.yml:开发构建,手动触发,镜像存储在 os-builds.home-assistant.io
  • .github/workflows/release.yml:发布版(以及发布候选版)构建,在 GitHub release 发布时触发,镜像作为 GitHub release asset 存储。

开发构建流水线也可以从 PR 触发:需要先设置相应的开发板标签,随后在添加 run-dev-build 标签时,会为这些开发板触发构建。