Jenkins的Subversion发布后提交钩子

时间:2019-05-15 18:26:10

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

我花了整整一天时间浏览了十年来的SO questions,论坛帖子以及Jenkins Subversion插件wikidocumentation

我要回答的问题:

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

我无法回答的问题:

  • 使用wgetcurl的利弊是什么?
  • 传递REV参数有什么作用?

使用Jenkins 2.164.3和Subversion 1.9.7,每个版本都在其自己的Ubuntu Server 18.04上进行设置,每个版本都在其自己的Apache HTTP Server(具有用于HTTPS的LetsEncrypt SSL证书)之后。

1 个答案:

答案 0 :(得分:0)

这是为我工作的最小的svn提交后钩子:

if object

注意:

  • 已启用CSRF,但是#!/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 seems to be enough(不需要面包屑)。
  • 不指定任何USER:API_TOKEN标头似乎很好
  • 不发送Content-Type似乎很好(有什么区别?)
  • 无需配置特殊的构建触发令牌(请参见屏幕截图)

具有(8,706)和不具有(-1)rev参数的詹金斯日志输出:

?rev=${REV}

作业配置:

enter image description here