自动构建单个开发人员

时间:2014-07-11 18:43:09

标签: bash svn build scheduled-tasks post-commit

我知道这可能对单个开发人员解决方案(个人项目而非企业软件)来说太过分了,但我想知道如何更好地满足我的需求。

我需要完成以下任务:

  • 至少每天运行集成测试(目前没有UI),以查看我的任何提交是否破坏了构建。
  • 每天构建整个解决方案,以查看我的任何提交是否不完整,并在签出另一个文件夹时导致问题。
  • 每天至少在我的个人计算机上运行一次(使用另一台计算机来自动化构建过程暂时不是一种选择)

我知道像詹金斯这样的自动构建软件很容易做到以前(甚至在提交的同一台机器上),但我想知道是否有更轻的解决方案。例如:存储库上的提交后操作?,脚本?,计划任务等...

修改

忘记提到我正在使用带有运行nunit测试的c#项目的Windows机器。我使用visual studio 2012编译解决方案并使用nunit运行测试。我使用towise svn和Ank svn作为存储库浏览器。

2 个答案:

答案 0 :(得分:2)

您可以定期(例如每天)进行crontab(5)条目来运行您的构建或测试。

我有一个crontab条目,调用一些shell脚本来在新的地方通过svngit版本控制来获取源树,并每天构建它。

您可以考虑使用inotify(7)工具(可能是incron),在修改某个文件(例如可执行文件)后立即进行测试。

另请参阅D.Moreno的garlic项目(我从未使用过)。

您还可以为测试设置一些Makefile目标,并从emacs运行它们。我有

(load-library "compile")
(global-set-key [f8] 'recompile)

在我的~/.emacs中,所以我只需按下emacs编辑器中的 F8 键即可编译。

答案 1 :(得分:0)

使用Jenkins - 没有理由不考虑它本身相当轻量级(尽管是一个java应用程序)。它非常独立,备份包括停止Jenkins服务并复制安装目录,这样就不会污染你的操作系统。

你提出的任何其他内容都将过于复杂(在维护一系列脚本,计划任务等方面)或仅仅是重量级的#39;。您也可以节省您的时间并从一开始就使用适合的工具。