问题标签 [continuous-deployment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
880 浏览

ruby-on-rails - Rails 中的无缝部署

我想无缝升级我的 Rails 应用程序:

意义:

  1. 如果不需要运行迁移,我想透明地升级代码并且在部署期间没有请求进入 404。
  2. 这很难我想要一些可以无缝升级数据库的过程,并且在此期间,当数据库更新完成时,只需阻止 Web 请求(将它们在管道中排队),允许内容通过。(我只需要它来处理短时间的迁移——比如 5-10 秒的迁移)。

您将如何实现这一目标?

0 投票
11 回答
148313 浏览

heroku - 如何关闭部署在 Heroku 上的应用程序?

我在 Heroku 上有一个应用程序,很少有用户使用。但是,我注意到有一些数据问题我想修复并同时停止应用程序,这样用户就不会输入任何新内容。

有没有办法阻止 Heroku 上的应用程序而不是销毁它?我看到重启服务器命令在那里......虽然我没有看到像“停止”这样的东西。

0 投票
5 回答
1940 浏览

c# - 使用 ASP.NET 网站进行持续部署?

我有一个 C#/ASP.NET 网站,目前正在开发中。当我们在生产中时,我想在一天中经常发布,因为我们修复错误并添加功能(例如:http ://toni.org/2010/05/19/in-praise-of -连续部署-wordpress-com-story/)。

如果您上传网站的新版本甚至更改单个文件,它会踢出当前登录的用户并让他们从任何表单等开始。在不干扰 .NET 站点用户的情况下进行部署有什么秘诀吗?

0 投票
5 回答
1546 浏览

ruby-on-rails - 使用 Ruby on Rails 和 Capistrano 部署跟踪

就像每个提交都有一个原因和目的一样,我认为每个部署都有一个目的和原因。源代码提交有注释。但是部署没有。

如何自动记录每次部署的原因和目的?

我需要记录:

  • 谁部署到哪里,什么时间。
  • 为什么部署?Bug修复?功能更新?紧急修复不在迭代计划上?
  • 使用了哪个 git 或 svn ref?

有没有人觉得需要这种系统?你觉得我的方法怎么样?我怎样才能实现我的目标?我目前正在使用 Capistrano 进行部署。


增加了赏金。我想听听更多来自不同开发人员的“持续部署”故事。


我发现了两个部署跟踪的服务:

0 投票
6 回答
3525 浏览

ruby-on-rails - 使用 Git 和 Heroku 进行适当的持续集成和持续部署

我正在使用 heroku 和 git 开发一个 ruby​​ on rails 网站。

我应该使用哪些工具和功能来设置以下简单的开发过程?

代码 > 签到 > 自动测试 > 自动部署

  • 我将我的代码检查到我的存储库中(首选选项,托管 git,如 github)
  • 测试自动运行并且网站部署在我的登台 Heroku 应用程序中
  • 如果测试通过,网站会自动部署在我的生产 heroku 应用上
  • 如果测试失败,我想以某种方式得到通知。

你会怎么做?

0 投票
2 回答
1595 浏览

visual-studio-2008 - 从 TeamCity 的单个解决方案发布多个项目

我有一个包含多个项目的 VS2008 解决方案。我需要发布其中五个项目,而这五个项目中的两个需要发布两次,具有两个不同的配置设置(只需对几个 web.config 属性的 configSource 进行简单更改即可)。

然后,我想获取生成的 7 个输出并将 4 个放入一个 zip 文件中,将另外 3 个放入另一个中,然后将它们推送到准备部署的客户端 FTP。

我是否试图在一个构建配置中做太多事情,或者这是否合理?

0 投票
2 回答
306 浏览

ruby - 自动将 gem 从持续集成服务器推送到 RubyGems.org

我有一个持续集成/持续部署方案,我希望我的构建脚本直接从公共构建服务器 (teamcity.codebetter.com) 将 ruby​​ gem 推送到 RubyGems.org。

问题是:如何指定我的凭据?在我的本地机器上,我将它们放在 ~/.gem/credentials 下,一切正常,但我如何告诉构建服务器推送我的 gem?

谢谢和最好的问候, 斯蒂芬福克曼

0 投票
5 回答
9519 浏览

java - 如何停止 Maven 的验证阶段重建工件?

想象一个使用 Maven 构建的 Java 项目,我有:

  • 一些快速运行的单元测试:
    • 开发人员应该在提交之前运行
    • 我的 CI 服务器(Hudson,FWIW)应该在检测到新提交时运行,在出现故障时提供几乎即时的反馈
  • 一些运行缓慢的自动化验收测试:
    • 开发人员可以选择运行,例如重现和修复故障
    • 我的 CI 服务器应该在成功运行单元测试后运行

这似乎是一个典型的场景。目前,我正在运行:

  • “测试”阶段的单元测试
  • “验证”阶段的验收测试

配置了两个 CI 作业,都指向项目的 VCS 分支:

  1. “提交阶段”,运行“mvn 包”(编译和单元测试代码,构建工件),如果成功,将触发:
  2. “Automated Acceptance Tests”,运行“mvn verify”(设置、运行和拆除验收测试)

问题是作业 2 单元测试并重新构建被测工件(因为验证阶段会自动调用包阶段)。出于以下几个原因(重要性降低),这是不可取的:

  • 作业 2 创建的工件可能与作业 1 创建的工件不同(例如,如果同时有新的提交)
  • 延长了对做出提交的开发人员的反馈循环(即他们需要更长的时间才能发现他们破坏了构建)
  • 浪费 CI 服务器上的资源

所以我的问题是,如何配置作业 2 以使用作业 1 创建的工件?

我意识到我可以只拥有一个运行“mvn verify”的 CI 作业,它只会创建一次工件,但我希望拥有上述单独的 CI 作业以实现 Farley 风格的部署管道。


如果它对任何人都有帮助,这是已接受答案中“项目 2”的完整 Maven 2 POM:

请注意,即使这个“测试”项目没有创建工件,它也必须使用某种包装(我在这里使用了“jar”),否则在验证阶段不会运行任何测试。

0 投票
2 回答
102 浏览

methodology - 选择合适的技术和环境

我们是两个处于开始新网络产品开发边缘的开发人员。

我们都是精益创业方法的拥护者,并希望实践持续部署。

困境来了——我们都来自 C#/Windows 背景,我们需要在以下两者之间做出决定:

  1. 坚持.NET和Windows,我们不会浪费时间学习新技术,全力以赴开发。

  2. 切换到 Ruby on Rails 和 Linux,后者在快速提升和广泛的开源支持方面享有盛誉。不利的一面是,我们需要在学习 Ruby、Rails 和 Linux 上付出很多努力……

你会怎么做?我们还应该考虑哪些其他因素?

0 投票
2 回答
12245 浏览

tomcat - 配置 Hudson 以部署构建

我正在尝试配置 Hudson,以便能够自动将构建(.war 文件)部署到 Tomcat。然后有人将使用新部署的构建来测试应用程序。

我尝试使用 Deploy Plugin 自动部署 .war 文件,这很有效。但是,构建 .war 文件的作业将在每次 scm 更改后运行(无论何时提交代码)。使用 Deploy 插件,每次构建时都会将 .war 文件部署到 Tomcat。由于代码被频繁提交,这将意味着 Web 应用程序也将频繁重启,这将中断测试过程。

我很欣赏 Hudson 运行我的单元测试并定期进行构建的事实,所以我不想更改这项工作的触发器。

我正在寻找一种可以手动决定从 Hudson 内部部署的方法。我尝试创建一个单独的作业,该作业将从第一个作业部署 .war,但这不起作用。有没有人有任何设置这样的经验?