我需要设置什么插件和插件功能才能让我的Jenkins作业触发构建任何时候将代码提交给SVN项目?我已经安装了标准的SVN插件以及SVN标签插件,但没有看到任何允许进行触发器配置的新功能。Jenkins CI:如何在SVN commit上触发构建
回答
有两种方法去了解这一点:
我建议第一个选项最初,由于其易于实施。一旦你在构建过程中成熟,切换到第二个。
民意调查的资料库,看是否发生了变化。如果两个提交在同一个轮询间隔内进入,这可能会“跳过”一个提交。 Description of how to do so here,请注意第四个屏幕截图,您可以在该作业上配置基于轮询存储库(使用类似crontab的配置)的“构建触发器”。
配置您的存储库以具有通知Jenkins生成需要启动的post-commit挂钩。 Description of how to do so here,在部分“提交后钩”
的SVN标签特征不是轮询的一部分,它是促进源代码的当前“头”标签的一部分,进行快照的建立。这允许您将Jenkins buid#32称为SVN标签/标签/ build-32(或类似的东西)。
后提交钩岩石。更快的响应时间,并且(按比例)您的CI系统不会用数百个更改日志请求压缩源回购。 – EricMinick 2012-04-05 15:22:30
@EricMinick他们很棒,但有时他们可以融化CI服务器,如果你在很短的时间内得到很多小的提交。这些课程都是马匹,如果不分析你的开发过程当前如何运作,很难知道哪种方法是有利的。 – 2012-04-05 15:27:27
@EdwinBuck:你知道有没有办法将Jenkins配置为仅构建选择性提交?我会解释一下,我有一个tortoiseSVN和一个Jenkins项目,它继续轮询存储库。现在,如果我希望我所做的承诺不应触发Jenkins,是否有办法做到这一点? – 2015-01-05 20:04:35
我做了一个工具,使用Python与一些bash触发jenkins构建。基本上,你必须收集来自这两个值的post-commit在commit打SVN服务器:
REPOS = “$ 1” REV = “$ 2”
然后使用“svnlook的迪尔斯 - 改变$ 1 - [$ 2 “以获得刚刚承诺的道路。然后,你可以检查你想建立的存储库。想象一下你有几十万个项目。你不能检查整个存储库?
您可以从github
检查出我的剧本我写这个剧本,因为我刚刚学习Python,和现在仍在使用它。我计划改进它,但新项目和新事物一直支持着我。大家对Python有很好的了解肯定有更好的内置工具。如果任何人都可以分享,会喜欢拥有它。
你可以使用post-commit钩子。
将提交后挂钩脚本放入hooks
文件夹中,在C:\驱动器中创建一个wget_folder
,并将wget.exe
文件放入此文件夹中。 添加以下代码文件中称为post-commit.bat
SET REPOS=%1
SET REV=%2
FOR /f "tokens=*" %%a IN (
'svnlook uuid %REPOS%'
) DO (
SET UUID=%%a
)
FOR /f "tokens=*" %%b IN (
'svnlook changed --revision %REV% %REPOS%'
) DO (
SET POST=%%b
)
echo %REPOS% ----- 1>&2
echo %REV% -- 1>&2
echo %UUID% --1>&2
echo %POST% --1>&2
C:\wget_folder\wget^
--header="Content-Type:text/plain"^
--post-data="%POST%"^
--output-document="-"^
--timeout=2^
http://localhost:9090/job/Test/build/%UUID%/notifyCommit?rev=%REV%
在作业
echo
的测试=名称用来看到价值,你也可以在末尾添加exit 2
了解的问题, post-commit钩子脚本是否正在运行。
你们会推荐使用GitHub代替SVN来触发构建吗? 其实我只是知道SVN,但我想知道为什么这么多人倾向于使用GitHub。
你只需要一个插件,这是一个颠覆插件。 然后 简单地说,走进jenkins-> job_name->构建触发部分 - > (我)触发建立远程(即从脚本) 身份验证令牌:-Token_name
然后去SVN服务器挂钩目录,然后起火后以下命令: - (a)cp post-commit.tmpl post-commit (b)chmod 777 post-commit (c)chown -R www-data:www-data post-commit (d)vi post-提交 说明:所有行都应该注释 最后加上一行 synta X(为Linux用户): - 在/ usr /斌/卷曲http://username:[email protected]:8081/job/job_name/build?token=Token_name
语法(视窗用户): - C:/ curl_for_win /卷曲http://username:[email protected]:8081/job/job_name/build?token=Token_name
[触发哈德森生成时使用svn commit](的- 1. 如何使用svn post-commit触发jenkins构建?
- 2. jenkins - 触发基于git commit的构建
- 3. svn multibranch在jenkins ci中更改基础
- 4. 如何触发Jenkins从cURL构建?
- 5. 使用Jira触发Jenkins构建
- 6. 无法触发jenkins作业svn post-commit挂钩
- 7. 如何在Perforce上触发Jenkins构建提交
- 8. jenkins如何在gitlab发生更改时触发构建
- 9. Jenkins构建管道调度触发器
- 10. Jenkins构建触发器不显示
- 11. 评论触发器jenkins构建
- 12. 从TestRail触发一个Jenkins构建
- 13. Jenkins git触发构建不阻止
- 14. 如何防止在Jenkins中触发下游项目构建?
- 15. 如何在Jenkins中一次远程触发一次构建?
- 16. 如何在触发远程构建后从Jenkins获得响应
- 17. 如何使用perforce在jenkins中触发构建
- 18. 从BitBucket合并触发Jenkins构建
- 19. 在Jenkins多分支管道上触发的重复构建
- 20. Jenkins:构建步骤中的条件触发器
- 21. Jenkins构建被触发,尽管“不触发构建的提交通知”
- 22. 从Visual SVN触发Hudson构建
- 23. Jenkins触发一个基于多个项目提交的构建
- 24. Gitlab CI - 如何仅在特定文件集发生更改时触发构建
- 25. 如何触发jenkins建立在合并github分支上?
- 26. 如何在github org上创建仓库时触发jenkins?
- 27. 如何从Jenkins手动触发TFS构建
- 28. 如何添加多个github回购触发jenkins构建?
- 29. 詹金斯,如何仅向SVN提交特定提交以触发构建
- 30. Bitbucket |触发构建请求
可能重复的HTTP ://sackoverflow.com/questions/4792466/trigger-hudson-build-when-svn-commit) – highlycaffeinated 2012-04-04 15:28:49