集成版本和发布信息构建 RPM 的工作流

Workflow to integrate version and release information building a RPM

我正在寻找一个好的工作流程,借助它我可以自动化版本和发布信息,以通过 Jenkins 构建 RPM。

[name]-[version]-[release].[arch].rpm

目前,这两个细节都是在 Jenkinsjob 中手动输入的(使用参数构建)。这不是很好。 版本号在我的setup.py里。我怎样才能在 Jenkins 的工作中读出它们? sed 是正确的选择吗? 发布信息目前未存储在任何地方。这在您的项目中输入在哪里?您是否有包含当前 rpm 版本号的附加 release.txt 文件?

没有共同点。每个人都使用其他东西。有些人有:

Name:  @@NAME@@
Version:  @@VERSION@@

并使用 sed 替换它。有些人使用 autotools 并有 foo.spec.in 并让 autotools 在那里扩展变量。

我个人使用 tito,它可以在标记期间使用模板(参见 man tito.props 中的 VERSION_TEMPLATE)