作业导入插件不导入文件夹 [英] Job Import Plugin doesn’t import folder
问题描述
我当前正在尝试将作业从运行在AWS上的服务器导入到运行在GCP Kubernetes上的新服务器。
我已经在新服务器上设置了Job Import Plugin3.4版。
当我尝试导入作业时,它只有1个作业。
但是,当我导入包含作业和文件夹的文件夹时,导入的文件夹中没有任何内容。
旧服务器:Jenkins版本2.127
新服务器:Jenkins版本2.289.2
有帮助吗?
推荐答案
该插件似乎没有提供文档,无论是在legacy wiki page、Plugins page或GitHub repo中。此answer from @valdeci在提供使用说明方面做得很好。
tl;dr:您必须分阶段进行;首先是文件夹,然后是每个文件夹中的作业。"递归到文件夹"无法正常工作。
问题:Jenkins将文件夹对象视为另一种作业类型,类似于Freestyle Job和Pipeline Job(因此出现了&Quot;New Item&Quot;演示文稿)。很明显,该插件不能直观地处理文件夹和文件夹内的作业。它也不向用户提供直接反馈(错误在jenkins.log中)。
上下文:只要同时选择文件夹和嵌套作业,使用Jenkins 1.121.3加上job-import-plugin-3.3,Folders-6.5.1就可以正常工作。
插件有number of open issues,包括:
Jenkins-64121:Jenkins ImportPlugin-错误‘/’不安全字符
和53902(仅复制文件夹,但不复制文件夹内存在的作业)。我不知道行为何时改变,但可以导入作业。
配置/设置:
以下内容已验证jenkins-2.289.3,job-import-plugin-3.4,文件夹-6.16。
假设您安装、配置了作业导入插件(左图),单击了作业导入插件按钮(或${JENKINS_URL}/job-import
(右图)):
您有空的目标结构和源结构:
JobInRoot
AFolder
AFolder/JobInFolder
失败结果:
如果单击查询!,则响应将为JobInRoot
和AFolder
选择两者,它将导入JobInRoot
和AFolder
,但不会导入其内容。这是因为它只导入了两个作业项(Freestyle作业项和文件夹作业项);它不会递归导入文件夹内的作业。
JobInRoot成功
AF文件夹成功
如果勾选[ X ] Search into folders
并单击查询!,则响应将全部为这三个项目。选择所有三个项目并导入!,结果为:
JobInRoot成功
AFFolder成功
JobInFolder失败-‘/’是不安全字符
解决方案:
- 如上所示,首先导入文件夹
AFolder
。 - 再次运行作业导入插件,但将RemoteFolder设置为[
job/AFolder
],然后设置查询!。这是为了解决不安全&q;/&q;字符问题和文件夹插件处理不当的问题。现在您将在AFolder
中看到嵌套作业。 - 设置
Copy to folder [ AFolder ]
,选择JobInFolder
,导入!
JobInFolder成功
并且作业实际位于AFolder/JobInFolder
3a。要将嵌套文件夹(例如:L1Folder/L2Folder/L3Folder/jobInFolder3)处理到嵌套文件夹中,请再次迭代,但每个级别都需要插入";job/"前缀,即:RemoteFolder[job/L1Folder/job/L2Folder/job/L3Folder ...
]。不要预先考虑rooturl,仅从";job/";:限定的itemByFullName-ish。
3b。如果要将嵌套作业复制到根文件夹,则必须设置Copy to folder [ / ]
,否则将收到:
可能有更多细微差别,但此方法应该有助于迁移大多数项目。尚未测试选项[]安装所需的插件或[]覆盖现有作业。JobInFolder失败NULL
这篇关于作业导入插件不导入文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!