每晚重建Django网站
我有一个Django网站,每晚都需要重建一次。我想从Git代码库中取出代码,然后开始做一些事情,比如设置虚拟环境、下载所需的包等等。这一切都不需要人工干预,因为我打算通过定时任务(cron)来运行。
我对该用什么工具感到很困惑。我是应该写一个Python脚本还是一个Shell脚本?有没有什么工具可以帮助我呢?
谢谢。
所以我想要的是持续集成(CI),根据我看到的,我可能会用Jenkins或Buildbot来实现这个目标。我发现这些文档对我这样从未尝试过的人来说有点难懂。
像Buildbot和Jenkins这样的持续集成工具,都是简单地运行测试、再运行测试,然后给你发送报告,还是说它们实际上会设置一个可以通过浏览器访问的Django工作环境呢?
3 个回答
你问的其实是持续集成。
市面上有很多持续集成工具,但最终还是要看你个人的喜好(就像往常一样,希望如此)以及哪个工具最适合你。
Django项目本身使用的是buildbot。
如果你问我的话,我会推荐你continuous.io,这个工具可以直接和Django应用配合使用。你可以手动设置想要构建Django项目的次数,这点非常不错。
当然,你也可以写一个shell脚本,通过cron定时重建你的Django项目,但你应该值得更好的选择。
其实有成百上千种工具可以做到这一点。你可以写Python脚本通过定时任务(cron)来运行,也可以写一些Shell脚本,或者使用成百上千种不同的构建工具。
大多数使用Python和Django的公司可能会推荐Fabric。这其实就是你需要逐步了解所有需要做的事情,以及如何把这些事情写成脚本。比如,在你部署之前,是否需要运行测试套件来确保不会把一切搞坏?你是否需要进行South数据库迁移?你真的需要考虑一下需要做哪些事情,然后写一个Fabric脚本来完成这些任务。
而且,这些内容还没有涉及到你所提到的持续集成,这本身就有一大堆工具可以帮助你管理。
你需要创建一个构建脚本,这个脚本可以完成除了GIT检出以外的所有工作。我自己没有用过Python的构建工具,但或许可以试试像这个网站提供的工具: http://www.scons.org/。
一旦你创建了这个脚本,就可以用Jenkins来安排每晚自动构建,并报告成功或失败的情况: http://jenkins-ci.org/。Jenkins会知道怎么检出你的代码,然后你可以让它运行你的脚本。