准备主要版本
主要版本遵循与次要版本和补丁版本相同的流程,但需要创建一个自定义工作流,以便在要发布的分支上运行。这样做的原因是,我们不经常进行主要版本发布,因此让这些工作流一直运行并不经济。
要创建主要版本工作流,请按照以下步骤操作。
- 编辑
./github/release-workflows.jsonnet
- 为主要版本添加新的工作流。例如,3.0 版本的样子如下:
'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
),
- 确保
branches
字段设置为要从中发布版本的分支。 - 确保
releaseAs
字段设置为要发布的版本。 - 运行
make release-workflows
生成新的工作流。将此更改合并到 main 和 release 分支。您可能还想作为此 PR 的一部分禁用补丁版本工作流,详见下文。
与补丁版本的竞态条件
一旦创建此新工作流,与补丁工作流可能会出现竞态条件。可以通过以下两种方法之一解决:
- 在主要版本发布完成之前禁用补丁版本工作流。
- 监视发布分支的所有 actions(例如:https://github.com/grafana/loki/actions?query=branch%3Arelease-3.0.x),并取消所有补丁版本的运行。