我已经处理这个问题几个小时了,似乎我做错了什么。
首先,svn 的 post-commit 钩子已经在工作,因为我已经能够看到一个日志,这里是 post-commit 的代码:
#!/bin/sh
REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/bin/echo "$REPOS $REV $UUID" >> /var/subversion/svn-post-commit.out
请注意,要使其正常工作,您需要执行 chmod 777 来提交并执行 chown www-data:www-data 到 svn 存储库。
没有工作的是 jenkins notifyCommit,它将在 jenkins 中自动构建项目:
/usr/bin/wget \
--header "Content-Type:text/plain;charset=UTF-8" \
--post-data "'svnlook changed --revision $REV $REPOS'" \
--output-document "-" \
--timeout=2 \
http://localhost:8080/subversion/${UUID}/notifyCommit?rev=$REV
我也尝试通过 curl 调用
curl --data "rev=4" http://localhost:8080/subversion/c8bb87ec-9a19-4975-ab9d-8b15741e6d7e/notifyCommit
没有错误,但詹金斯没有建立。
有任何想法吗?
卷曲的回复:
* About to connect() to 10.1.1.133 port 8080 (#0)
* Trying 10.1.1.133... connected
> POST /subversion/c8bb87ec-9a19-4975-ab9d-8b15741e6d7e/notifyCommit HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: 10.1.1.133:8080
> Accept: */*
> Content-Length: 5
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 5out of 5 bytes
< HTTP/1.1 200 OK
< Server: Winstone Servlet Engine v0.9.10
< Connection: Close
< Content-Type: text/html;charset=UTF-8
< Date: Mon, 22 Oct 2012 05:48:49 GMT
< X-Powered-By: Servlet/2.5 (Winstone/0.9.10)
<
* Closing connection #0
谢谢,
czetsuya