【发布时间】:2026-02-09 02:10:01
【问题描述】:
我正在尝试使用 Jenkins 和我们的源代码控制系统(目前是 svn,但很快 git)来改进我们的持续集成过程。
也许我在想这个过于复杂,或者我还没有看到正确的提示。
我设想的流程包含三个步骤和相关角色:
- 一个或多个开发人员会完成他们的工作,并最终将实际软件(“主软件”)的代码更改以及单元测试提交到源代码控制(git 或其他)。 Jenkins 将构建软件、运行单元测试以及可能的其他一些步骤(例如静态代码分析)。如果这些都没有失败,那么开发人员的工作就完成了。作为构建的一部分,构建号作为版本号的一部分被纳入主软件本身。
- 一名或多名测试工程师随后将负责构建并执行测试。其中一些可能是手动的,其中大多数需要自动化/脚本测试。 这些最终也应提交到源代码管理中并通过构建服务器执行。但是,这不会触发主软件的新构建(因为没有任何变化)。如果这些都没有失败,测试工程师就完成了。请注意,我们的自动化测试目前需要几个小时才能完成。
- 作为最后一步,项目经理 授权发布软件,该软件执行所需的任何交付/部署步骤。此外,主要软件、单元测试和自动化测试脚本、jenkins 构建脚本以及理想情况下所有构建工件(“二进制文件”)的源代码都在源代码控制系统中存档(标记)。
理想情况下,开发人员还可以手动触发自动测试的执行,以“预览”他们的构建结果。
我一直无法弄清楚如何使用 Jenkins 和 Git - 或任何其他源代码控制系统来做到这一点。
Jenkin 的管道似乎假设所有步骤都自动按顺序执行。它似乎还假设从一开始就将代码提交到源代码管理中(如果提交“仅仅是”自动化测试脚本,我认为这是不正确的)。触发不必要的主软件构建确实会损害我们的流程,因为它基本上会使手动测试和文档无效,因为它会导致软件中包含新的构建号。
如果我的方法如此不常见,请指导我如何正确执行此操作。否则,我将不胜感激如何完成这项工作(从概念上)。
【问题讨论】:
标签: jenkins continuous-integration jenkins-pipeline continuous-delivery multibranch-pipeline