我有一个django网站,需要每天晚上重建。我想从Git仓库中签出代码,然后开始做一些事情,比如设置虚拟环境、下载软件包等。这将不需要人工干预,因为它将从cron
运行我真的很困惑该用什么来做这个。我应该写Python脚本还是Shell脚本?有什么工具可以帮助你做到这一点吗?
谢谢。
所以我要找的是CI,从我所看到的,我可能最终会使用Jenkins或Buildbot。我发现文档对于一个从来没有尝试过这样的事情的人来说是相当神秘的。
是否所有的CI像Buildbot/Jenkins只是简单地运行测试和更多的测试,并发送给你报告,或者他们实际上建立了一个工作的Django环境,你可以通过浏览器访问?您需要创建某种构建脚本来完成除了GIT签出之外的所有工作。我从未使用过任何Python构建工具,但可能像:http://www.scons.org/.
一旦你创建了一个脚本,你可以使用Jenkins来安排每晚的构建并报告成功/失败:http://jenkins-ci.org/。Jenkins将知道如何签出你的代码,然后你可以让它运行你的脚本。
实际上有100种不同的工具可以做到这一点。你可以编写从cron运行的python脚本,你可以编写shell脚本,你可以使用100多种不同的构建工具之一。
大多数python/django商店可能会推荐Fabric。这真的是一个问题,您运行并确保您了解需要完成的所有内容以及如何编写脚本。您是否需要在部署之前运行测试套件以确保它不会真正破坏一切?是否需要运行南数据库迁移?你真的需要考虑需要做什么,然后你只需要写一个fabric脚本来做这些事情。
这些甚至都没有触及到一个事实,即你所要求的总体上是持续集成,它本身就有一大堆工具来帮助管理它。
您所要求的是持续集成。
有很多CI工具,但最终它归结为您的个人喜好(一如既往,希望),哪一个适合您。
Django项目本身使用buildbot。
如果你问我,那么我建议你继续。io,它可以与Django应用程序一起开箱即用。你可以手动设置构建Django项目的次数,这很好。
当然,你可以写一个shell脚本,通过cron重新构建你的Django项目,但你应该得到更好的。