菜单
开源

准备主要版本

主要版本遵循与次要版本和补丁版本相同的流程,但需要创建一个自定义工作流,以便在要发布的分支上运行。这样做的原因是,我们不经常进行主要版本发布,因此让这些工作流一直运行并不经济。

要创建主要版本工作流,请按照以下步骤操作。

  1. 编辑 ./github/release-workflows.jsonnet
  2. 为主要版本添加新的工作流。例如,3.0 版本的样子如下:
jsonnet
  'three-zero-release.yml': std.manifestYamlDoc(
    lokiRelease.releasePRWorkflow(
      branches=['release-3.0.0'],
      buildImage=buildImage,
      checkTemplate=checkTemplate,
      golangCiLintVersion=golangCiLintVersion,
      imageBuildTimeoutMin=imageBuildTimeoutMin,
      imageJobs=imageJobs,
      imagePrefix=imagePrefix,
      releaseLibRef=releaseLibRef,
      releaseRepo='grafana/loki',
      skipArm=false,
      skipValidation=false,
      useGitHubAppToken=true,
      releaseAs='3.0.0',
    ) + {
      name: 'Prepare Loki 3.0 release',
    }, false, false
  ),
  1. 确保 branches 字段设置为要从中发布版本的分支。
  2. 确保 releaseAs 字段设置为要发布的版本。
  3. 运行 make release-workflows 生成新的工作流。将此更改合并到 main 和 release 分支。您可能还想作为此 PR 的一部分禁用补丁版本工作流,详见下文。

与补丁版本的竞态条件

一旦创建此新工作流,与补丁工作流可能会出现竞态条件。可以通过以下两种方法之一解决:

  1. 在主要版本发布完成之前禁用补丁版本工作流。
  2. 监视发布分支的所有 actions(例如:https://github.com/grafana/loki/actions?query=branch%3Arelease-3.0.x),并取消所有补丁版本的运行。