每晚重建一个Django网站

时间:2011-07-26 17:27:27

标签: python django deployment web-deployment

我有一个django网站,需要每晚重建。我想查看Git repo中的代码,然后开始做设置虚拟环境,下载软件包等等。这样就没有人工干预,因为这将从cron运行

我真的很困惑这个用什么。我应该编写Python脚本还是Shell脚本?是否有任何工具可以帮助解决这个问题?

感谢。


所以我正在寻找的是CI,从我所看到的,我可能最终会使用Jenkins或Buildbot。我发现这些文档对于之前从未尝试过类似事情的人来说相当神秘。

像Buildbot / Jenkins这样的所有CI是否只运行测试和更多测试并向您发送报告,或者他们是否实际设置了可以通过浏览器访问的Django环境?

3 个答案:

答案 0 :(得分:1)

您需要创建某种构建脚本,除了GIT结帐外,它还可以执行所有操作。我从未使用任何Python构建工具,但可能类似于:http://www.scons.org/

创建脚本后,您可以使用Jenkins安排每晚构建并报告成功/失败:http://jenkins-ci.org/。 Jenkins将知道如何签出您的代码,然后您可以让它运行您的脚本。

答案 1 :(得分:0)

您要求的是Continuous Integration

有许多CI工具,但最终它归结为您的个人喜好(总是希望如此)以及哪一个适合您。

Django项目本身uses buildbot

如果你问我,那么我会推荐你​​continuous.io,它适用于Django应用程序。 您可以手动设置构建Django项目的次数,这很棒。

当然,您可以编写一个shell脚本,通过cron重建您的Django项目,但您应该得到更好的效果。

答案 2 :(得分:0)

有十几种不同的工具可以做到这一点。你可以编写从cron运行的python脚本,你可以编写shell脚本,你可以使用100种不同的构建工具之一。

大多数python / django商店可能会推荐Fabric。这真的是你要经历并确保你理解需要完成的一切以及如何编写脚本的问题。在部署之前是否需要运行测试套件以确保它不会真正破坏一切?您需要运行South数据库迁移吗?你真的需要考虑需要做什么,然后你只需编写一个结构脚本来做这些事情。

这甚至都没有涉及这样一个事实,即你要求的总体是持续集成,它本身就有一大堆工具来帮助管理它。