Jenkins 将生成历史记录从一个作业复制到另一个作业

Jenkins 将生成历史记录从一个作业复制到另一个作业,jenkins,Jenkins,我有一个Jenkins的工作,它是一个声明性管道。它的URL是$JENKINS\u URL/job/dnscheck/ 我开始在Jenkins上使用Bitbucket项目,现在也发现了Jenkins文件,相同的作业位于$Jenkins\u URL/job/website/job/dnscheck/job/master/ 我想将整个历史记录(日志文件等)从$JENKINS\u URL/job/dnscheck/复制到$JENKINS\u URL/job/website/job/dnscheck/j

我有一个Jenkins的工作,它是一个声明性管道。它的URL是
$JENKINS\u URL/job/dnscheck/

我开始在Jenkins上使用Bitbucket项目,现在也发现了
Jenkins文件
,相同的作业位于
$Jenkins\u URL/job/website/job/dnscheck/job/master/

我想将整个历史记录(日志文件等)从
$JENKINS\u URL/job/dnscheck/
复制到
$JENKINS\u URL/job/website/job/dnscheck/job/master/
,然后删除
$JENKINS\u URL/job/dnscheck/

  • 我可以这样做吗
  • 如果是,我该怎么做
  • 我不想覆盖现有文件

  • 在主机上,日志都存储在
    ${JENKINS_HOME}/jobs//builds/
    中,除非被系统属性覆盖。它们由一系列编号的目录组成,其中包含一个
    log
    文件(构建日志)以及一些可能的附加数据文件(例如:build.xml、changelog.xml、injectedEnvVars.txt)

    在jobs目录和builds目录中,还有一些用于上一次构建的sym链接(good/bad等)。您可以复制所有目录(如果有冲突,请重新编号)并相应地更新sym链接。您可能还需要将上一个生成(自项目开始以来的生成数)重置为n+1,以便下一个生成数不重叠地递增。它位于/nextBuildNumber内的文件中

    最后,您必须让Jenkins识别新内容,因为Jenkins会缓存所有内容。您可以通过重新启动系统、从磁盘重新加载配置或在一个作业上重新加载数据来完成此操作,例如:

    def configXMLFile = job.getConfigFile();
    def file = configXMLFile.getFile();
    InputStream is = new FileInputStream(file);
    job.updateByXml(new StreamSource(is));
    job.save();