76

我有一个叫做“开发”的工作和另一个叫做“代码分析”的项目。目前我们有两个不同的工作和不同的工作区,但代码相同;有什么办法可以将同一个工作区用于多个工作?
我检查了 Jenkins 中可用的插件,但没有找到合适的插件。

4

4 回答 4

86

假设您的“开发”Jenkins 工作工作区是/var/workspace/job1. 在“代码分析”作业配置页面中,在选项卡下General单击Advanced...并选择选项Use custom workspace并提供与/var/workspace/job1“开发”作业相同的工作空间。

于 2014-02-03T08:27:36.137 回答
8

如果你找不到Use custom workspace你可以在你的项目下找到它configure>General>Advanced>Use custom workspace

于 2017-10-18T18:38:06.077 回答
6

有一个 Jenkins 插件,它使您能够创建一个共享工作场所,并在需要该给定存储库中的文件的每个作业上设置它们。

用例:

与您需要的类似,首先从同一个 Git 存储库创建两个作业,然后转到“管理 Jenkins”并创建一个Shared Workspace。并指出它,在您需要从该文件中读取的每项工作中。

詹金斯插件

https://wiki.jenkins-ci.org/display/JENKINS/Shared+workspace+plugin#


PS:您应该查看“已知问题”可能会破坏您的需求。

有时,在新复制的作业中,共享空间 url 参数在第一次“保存”时未保存到配置,您应该保存作业两次以确保。

^^ 这个问题还没有解决,我试过了,还是会发生。经过几次保存(只是为了确定)后,作业运行完美。

于 2016-03-17T18:16:44.940 回答
2

我尝试了继承插件,哇!当我只有一个小钉子时,那东西就是一把大锤。

我最终添加了“在其他项目上触发参数化构建”的构建后操作,其中包含“在同一节点上构建”和“预定义参数”。下游作业需要定义同名的参数 (WORKSPACE_PARENT),但您可以将其留空。然后,您使用自定义工作区定义下游作业(在常规 > 高级下)

我选择了构建后操作,因为构建作业的实际成功与下游构建的结果无关(目前)。如果要将下游作业的结果提升到父作业,则需要将其添加为构建任务,而不是构建后操作。

它非常适合我需要的东西。

家长的后期构建任务: 父级的构建后任务

孩子的自定义工作区: 孩子的自定义工作区

于 2019-10-02T18:58:40.977 回答