一尘不染

使用POST COMMIT钩子在SVN存储库上提交代码时,Jenkins作业自动触发

jenkins

我正在尝试使用Jenkins,docker和Ansible实现CI / CD管道。我
正在为版本控制系统使用SVN代码存储库。对于部署和
SVN代码存储库,我使用的是AWS EC2。部署和代码存储库位于单独的VM中。

我的要求

将代码提交到SVN存储库中时,需要触发一个
Jenkins Job。该工作将被称为ansible playbook,稍后将构建
项目,构建Docker映像并部署到EC2中。因此,对于我的SVN
代码存储库的任何更改,我需要构建Jenkins作业。

我目前的尝试

我在$ repo / hooks
文件夹下的post-commit.tmpl文件中添加了以下脚本。

REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/usr/bin/wget \
  --header "Content-Type:text/plain;charset=UTF-8" \
  --post-data "`svnlook changed --revision $REV $REPOS`" \
  --output-document "-" \
  --timeout=2 \
  http://server/subversion/${UUID}/notifyCommit?rev=$REV

注意:我不希望从回购中抽出分钟/小时/周的时间表。取而代之
的是,我正在寻找代码更改的时间,然后我需要构建
Jenkins项目。所以我没有添加任何时间表。

但是我仍然没有得到詹金斯的最新代码。如何找出
与我的配置相关的问题?

更新了post-commit.tmpl文件


阅读 652

收藏
2020-07-25

共1个答案

一尘不染

我做了很多尝试,通过使用答案中的指导来解决此问题。
最终,我得到了我面临的实际问题。我
在文件“ post-commit.tmpl”中添加了提交后脚本。创建
我的SVN信息库时默认获得此文件。无需添加“ post-commit.tmpl”,只需创建
文件“ post-commit”即可。它解决了我的问题。

2020-07-25