【问题标题】:Subversion post commit hook for JenkinsJenkins 的 Subversion 提交后挂钩
【发布时间】:2019-10-02 23:10:05
【问题描述】:

我刚刚花了一天时间浏览了十年的 SO questions、论坛帖子和 Jenkins Subversion 插件 wikidocumentation

我试图回答的问题:

  • 目前通过 Subversion 提交触发作业所需的最低设置是什么?

我无法回答的问题:

  • 使用wgetcurl 的优缺点是什么?
  • 传递REV参数有什么作用?

使用 Jenkins 2.164.3 和 Subversion 1.9.7,每个都设置在自己的 Ubuntu Server 18.04 上,并且每个都在自己的 Apache HTTP 服务器后面,带有用于 HTTPS 的 LetsEncrypt SSL 证书。

【问题讨论】:

    标签: jenkins svn post-commit-hook jenkins-api


    【解决方案1】:

    这是对我有用的最小的 svn post-commit 钩子:

    #!/bin/sh
    REPO="$1"
    REV="$2"
    UUID="$(/usr/bin/svnlook uuid ${REPO})"
    CHANGED="$(/usr/bin/svnlook changed -r ${REV} ${REPO})"    
    SERVER_URL="https://<redacted>/jenkins"
    USER="<redacted>"
    API_TOKEN="<redacted>" # not the password
    
    /usr/bin/curl -X POST -s -u "${USER}:${API_TOKEN}" -d "${CHANGED}" ${SERVER_URL}/subversion/${UUID}/notifyCommit
    

    注意事项:

    • CSRF 已启用,但 USER:API_TOKEN seems to be enough(不需要碎屑)。
    • 不指定任何Content-Type 标头似乎就可以了
    • 不发送?rev=${REV} 似乎还好(有什么区别?)
    • 无需配置特殊的构建触发器令牌(见屏幕截图)

    带有 (8,706) 和不带 (-1) rev 参数的 Jenkins 日志输出:

    May 15, 2019 8:04:28 PM INFO jenkins.scm.impl.subversion.SubversionSCMSource$ListenerImpl onNotify
    Received post-commit hook from f9.... for revision [8,706 vs -1] on paths [project1/pom.xml, ...]
    May 15, 2019 8:04:28 PM INFO jenkins.scm.impl.subversion.SubversionSCMSource$ListenerImpl onNotify
    No subversion consumers for UUID f9....
    May 15, 2019 8:04:28 PM INFO hudson.triggers.SCMTrigger$Runner run
    SCM changes detected in project1. Triggering  #20
    

    工作配置:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-08
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      相关资源
      最近更新 更多