如何为 Django 项目设置持续集成和持续部署?

发布于 2024-08-27 11:59:59 字数 596 浏览 5 评论 0原文

我正在研究如何为基于 Django 的 Web 应用程序的小型团队项目设置 CI 和持续部署。以下是需求:

  • 开发人员将代码签入托管 SVN 服务器 (unfuddle.com)
  • CI 服务器检测新的签入、签出源代码、构建、运行功能测试。
  • 如果测试全部通过,则将代码部署到 Amazon EC2 上的 Web 服务器。

目前,CI 服务器还负责运行功能测试。我发现我可以使用 Husdon 作为 CI 服务器,使用 Selenium 运行功能测试,并使用 Fabric 将构建部署到 Amazon 云中的远程 Web 服务器。

我是 Django 开发新手,对开源工具不太熟悉。我的问题是:

  1. 我可以找到一些将 hudson 与 selenium 集成的信息,但我也找不到太多有关如何将 Fabric 集成到 Hudson 的信息。这个设置可行吗?你看到问题了吗?
  2. 如何集成和部署数据库更改?最有可能的是,在早期阶段,我们会经常通过代码更改来更改数据库架构。我曾经使用 Visual Studio,数据库项目使得部署非常简单。我想知道是否有“既定的、得到良好支持”的方法来做到这一点。

谢谢!!

I am researching about how to set up CI and continuous deployment for a small team project for a Django based web application. Here are needs:

  • Developer check in the code into a hosted SVN server (unfuddle.com)
  • A CI server detects new checkin, check out the source, build, run functional tests.
  • If tests all passed, deploy the code to the webserver on Amazon EC2.

For now, the CI server is also responsible to run the functional tests. I figured out that I can use Husdon as the CI server, use Selenium to run functional tests, and use Fabric to deploy the build to remote web server in Amazon cloud.

I am new to Django development and not very familiar with opensource tools. My questions are:

  1. I can find some information to integrate hudson with selenium, but I couldn't find much information on how to integrate Fabric to Hudson as well. Is this setup viable? Do you see problems?
  2. How do I integrate and deploy database changes? Most likely in the early stage we will change database schema very often with code changes. I used to use Visual Studio and the database project made it very simple to deploy. I wonder if there is "established, well-supported" way to do that.

Thanks!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎夜雨 2024-09-03 12:00:00

在持续集成/部署方面无法为您提供太多帮助 - 在我的工作中,我们使用 CruiseControl,它的行为与您描述的非常相似,但我与设置它没有任何关系。

然而,在回答你的第二个问题时,关于数据库更改,Django 的当前技术水平是使用 South,刚刚发布了0.7版本。它在 CI 环境中运行良好,因为数据库迁移与每个应用程序的代码一起存储,因此 CI 服务器可以设置为在运行测试之前自动运行它们。

Can't help you very much with continuous integration/deployment - at my work we used CruiseControl and it acted very much as you describe, but I didn't have anything to do with setting it up.

However in answer to your second question, on database changes, the current state of the art in Django is to use South, which has just released version 0.7. It works well in a CI environment, as db migrations are stored alongside the code for each app, so the CI server can be set to run them automatically before running the tests.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文