jenkins 如何识别或者管理尚未完成的代码?

某一些模块提交的源码仓库的代码,可能并不完整。
在jenkins构建的时候,如何剔除这些“尚未完工”的模块呢?

因为源码仓库有“留痕”的作用,在一个比较大的重构过程中,可能需要将部分重构代码提交源码仓库,这样可以利用源码仓库的版本历史,方便查阅每次的代码变动、在某些时候,还可以进行代码回退。

提交到源码仓库的可能并不是一个完整的功能。
jenkins在构建的时候,如何管理跳过这些未完工的模块代码呢?

举一个例子:
我们目前的项目发版流程:
1、我们项目由多个模块组成;
2、开发人员针对 开发任务单、或者缺陷单 进行开发,开发过程中可以提交 源码仓库;
3、当一个任务单/缺陷单完成后(可能涉及多个模块),开发人员使用 Maven-deploy 类似的命令本地编译、打包,将模块提交到 制品库。
4、测试人员这时候会看到 任务单/缺陷单状态变化,通过某一个工具 将该任务单涉及的模块制品 和 其他制品组装为最终项目发布包(JAR、或者WAR、或者其他形式),然后进行测试。
5、测试通过后,比如每月发版时,会汇总当前已经测试通过的任务单,使用某工具将所有涉及的任务单制品组装为最终项目发布包。再进行必要的自动化测试或性能测试,最终完成发布。

那么,jenkins如何识别、跳过这些 尚未提交测试单的模块呢?
现有的项目发布过程,哪些是可以使用jenkins优化的?

欢迎分享下经验,谢谢!

阅读 916
avatarAI BotBETA

Jenkins 是一个持续集成和持续部署的工具,它可以和各种源代码管理系统(如 Git、SVN 等)配合使用,用于自动化构建、测试、部署软件项目。对于你的问题,Jenkins 并不会直接识别或管理尚未完成的代码。它在构建过程中主要依赖于你的源代码管理系统(如 Git)和你的构建脚本(如 Maven 或 Gradle)来获取代码并执行构建任务。

在你的情况下,Jenkins 的主要工作是在接收到源代码管理系统中的代码变动事件后,执行你的构建脚本,将代码编译、打包,然后运行自动化测试。因此,Jenkins 本身并不能识别哪些代码是 "尚未完成的"。这需要你的开发团队在提交代码时,按照一定的规范进行。例如,你们可以约定在提交代码时,必须为每个任务单或缺陷单创建一个独立的分支或模块,然后在任务单或缺陷单完成并测试通过后,再将该分支或模块合并回主分支。

在你的构建脚本中,你可以通过一些逻辑来跳过那些尚未提交测试的单的模块。例如,你可以在你的 Maven 脚本中添加一些额外的步骤,来检查每个模块的状态,如果一个模块尚未关联到一个已完成的测试单,那么就跳过该模块的构建和测试。

对于你的项目发布流程,Jenkins 可以帮助你们自动化一些步骤。例如,Jenkins 可以定期轮询你们的源代码仓库,在检测到新的代码提交后自动触发构建任务。在构建过程中,Jenkins 可以帮助你们自动化地编译、打包和运行自动化测试。此外,Jenkins 还支持各种插件,可以让你们很容易地实现复杂的构建和部署流程。例如,你们可以使用 "Thin Build" 插件来只构建和测试那些已经完成并通过测试的任务单的模块,以此来跳过那些尚未完成的模块。

另外,关于如何管理和识别尚未完成的代码,这其实更多的是一个软件开发和团队协作的问题。Jenkins 可以帮助你们自动化一些步骤,但是真正的管理和识别工作还需要你们团队的共同努力。例如,你们可以制定一些开发规范,要求每个任务必须有一个独立的分支或模块,每个任务完成后必须将该分支或模块合并回主分支等等。此外,你们也可以使用一些团队协作工具(如 Jira、Trello 等)来跟踪每个任务的状态,以此来更好地管理和识别尚未完成的代码。

2 个回答
✓ 已被采纳

有一种工程师叫做《运维开发工程师》。负责CI\CD中的自动化开发。

识别、跳过这些尚未提交测试单的模块,通过平台开放API去调用,再将结果返回给jenkins。

我觉得方向可能错了。

一个bug提出来,bug的修改可能会涉及多个模块这是比较正常的事情,模块之间也不是固定的,我觉得这个识别起来是比较麻烦的,情况复杂的时候相关的人也不一定能完全清楚,这个交给程序去处理我觉得是不太现实的。

如果是我的话,可能会把项目按照模块去划分成多个任务,模块提交的时候只构建相关的模块。//这个也得具体看项目是什么样子的。


你可以看看你们现在是用的什么bug管理系统,可能jenkins上有现成的插件,能直接集成到bug管理系统中。我看jira貌似可以根据bug状态直接触发构建。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进