Jenkins插件gitChangelog:如何指定存储库路径

时间:2019-12-10 11:58:38

标签: jenkins jenkins-pipeline jenkins-plugins jenkins-groovy

背景

我继承了一些凌乱的詹金斯管道。 问题之一是自定义插件,该插件获取代码并创建更改日志,该更改日志始终显示与先前构建的差异(即使先前的构建失败)。 结果,如果构建失败,并非所有JIRA都被合并为已解决。

问题

我需要创建一个changelog,它能够与表示上一次成功构建的标记有所不同。提取标签名称并指出from to没问题。 问题在于此自定义插件会将存储库克隆到自定义路径,而我在gitChangelog插件中看不到任何参数,可以让我指出实际存储库的位置。

因此,这是我管道的这一部分:

    def changelogString = gitChangelog returnType: 'STRING',
        repository: repoPath,
        from: [type: 'REF', value: "$lastTagName"],
        to: [type: 'REF', value: 'HEAD'],
        template: changesReportTemplate

以例外结尾:

se.bjurr.gitchangelog.api.exceptions.GitChangelogRepositoryException: Did not find a GIT repo in C:\Jenkins\workspace\MyBuildPipelineName

我无法找到将存储库位置提供给gitChangelog插件的方法。

暂时无法将存储库克隆到此默认位置(“到长路径”存在问题)。

1 个答案:

答案 0 :(得分:1)

在与您类似的情况下,我们使用一项工作来构建和测试所有内容,而另一项则添加git标签并解决JIRA问题。当满足所有先决条件时,构建作业将触发另一个作业。标记和jira作业运行后,它会发现自上一次运行“标记和jira作业” 以来的更改,因此它将对上一次成功运行的所有提交进行操作。不会因构建失败或构建作业中的其他问题而错过任何JIRA问题。