我正在尝试为我的项目设置 jenkins 和 svn。jenkins 和 svn 已经在运行了。目前我有一个提交后挂钩,每次有新提交进入时都会开始构建。我的詹金斯受到保护jenkins own user directory
并启用了注册。我也激活了matrix-based security
。
我想有以下场景:
每当开发人员提交时,post-commit
都会调用脚本并开始构建+测试。每当构建失败时,进行提交的开发人员将收到一封电子邮件,其中包含提交失败的原因信息。提交也应该在我的回购中恢复。对于我已经安装的恢复东西revert plugin
并为我的项目激活它。但它似乎不起作用,因为在我进行了导致构建失败的测试提交之后,我的仓库没有发生任何事情。也许我想念另一个 jenkins+svn 配置?我知道 revertig 提交不是最佳实践,但我希望在我的 repo 中始终有一个有效的构建用于测试/演示。我的post-commot
文件如下所示:
#!/bin/bash
REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/usr/bin/wget \
--http-user="user" \
--http-passwd="psswd" \
--header "Content-Type:text/plain;charset=UTF-8" \
--post-data "`svnlook changed --revision $REV $REPOS`" \
--output-document "-" \
--timeout=2 \
http://ip/jenkins/subversion/${UUID}/notifyCommit?rev=$REV
这个脚本基本上可以工作,但是你可以看到用户+密码是硬编码的。但我目前不知道我还能如何向詹金斯提供身份验证信息。也许我有逻辑上的问题,因为每个开发人员不仅需要一个新的结帐+我的仓库中的一个帐户,还需要一个 jenkins 帐户才能使整个想法生效?