我继承了一些凌乱的詹金斯管道。 问题之一是自定义插件,该插件获取代码并创建更改日志,该更改日志始终显示与先前构建的差异(即使先前的构建失败)。 结果,如果构建失败,并非所有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插件的方法。
暂时无法将存储库克隆到此默认位置(“到长路径”存在问题)。
答案 0 :(得分:1)
在与您类似的情况下,我们使用一项工作来构建和测试所有内容,而另一项则添加git标签并解决JIRA问题。当满足所有先决条件时,构建作业将触发另一个作业。标记和jira作业运行后,它会发现自上一次运行“标记和jira作业” 以来的更改,因此它将对上一次成功运行的所有提交进行操作。不会因构建失败或构建作业中的其他问题而错过任何JIRA问题。