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