【问题标题】:Jenkins - Updating build changelog during build stepJenkins - 在构建步骤期间更新构建更改日志
【发布时间】:2012-12-27 00:29:18
【问题描述】:

我注意到,如果您将 Jenkins 与 SVN 或 CVS 选项一起使用,则会为每个构建创建一个 changelog.xml,其中包含该构建的作者和提交消息。

不幸的是,在我的设置中,我没有使用 SVN 或 CVS,所以我无法利用 changelog 解析器。我想知道是否可以使用相同的格式(如 SVN XML 更改日志)创建您自己的更改日志,然后在构建过程中将 Jenkins 指向它。这样,当有人单击构建的更改时,他们将能够看到更改的内容以及更改的人员。

我尝试创建一个 changelog.xml,然后更新 build.xml 以使用 SVN 解析器,但我注意到了两个问题:
1) 您必须重新加载配置文件才能显示它
2) 在作业完成之前似乎不会创建 Build.xml

有一些关于更改日志解析器的信息,但您似乎无法在构建步骤中访问它:https://wiki.jenkins-ci.org/display/JENKINS/Change+log

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    也许系统 groovy 脚本 会是一个不错的方向(groovy 脚本插件)。只需添加一个新脚本作为您的构建步骤。您可以通过运行以下代码来访问您的 AbstractBuild 对象:

    import hudson.model.*
    import hudson.util.*
    import hudson.scm.*
    
    def thr = Thread.currentThread()
    def build = thr?.executable
    

    我目前正在尝试解决类似的问题,但我的用例发生了一些变化。我尝试以与 BlameSubversion 插件类似的方式从上游项目复制更改。不幸的是,我不能使用上面提到的 SCM 插件,因为它不适用于 post-commit-hook,所以我必须编写自己的解决方案。

    查看 copyChangeLogFromTriggerJob 和 copyRevisionFromTriggerJob 方法,了解 BlameSubversion 是如何做到的。

    我能够复制更改和修订,但我仍在与 ChangeLogParser 斗争。 我也很乐意提供任何帮助。

    【讨论】:

    • 嗯,我得试一试。我很好奇在不使用 SVN 时是否可以更新对象以使用 SVN ChangeLogParser。我希望有机会在接下来的几天里尝试一下。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2015-04-19
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多