【问题标题】:Continuous integration for a gem?gem的持续集成?
【发布时间】:2011-10-27 18:53:53
【问题描述】:

我目前正在开发一个 Rails 引擎。它存储在私有 git 上。

我有一个使用该引擎的“测试”应用程序。在 gem 文件中,我指向 gem 源的 git 存储库。这背后的逻辑是我是该项目的唯一开发人员,但有一些人帮助我测试它,我需要每天为这些人提供我工作的最新版本。

我希望每天晚上,比如说凌晨 3 点,我的测试应用程序通过从我的 git 获取最新版本的 gem 来自我更新。

对此我有两个问题:

  1. “自动化”(cron 工作?)capistrano 部署是要做的事情吗?还是有什么更具体的我应该看的?
  2. 我是否必须每天增加我的 gem 版本,以便我的测试应用程序知道有更新的版本,或者它可以每天从 git 中提取它,无论版本是什么?

目前,我正在做的是:

  1. 我在 git 存储库中增加 gem 版本。
  2. 使用 capistrano,我每晚手动重新部署应用程序。

谢谢!

【问题讨论】:

    标签: ruby-on-rails git gem


    【解决方案1】:

    我宁愿使用:

    • 一个移动的“test”标签,以便您的部署过程知道它必须测试的确切提交(移动如“删除旧的test标签,在相关提交上创建一个新标签”在那一天进行测试,然后git pushgit push --tags 以便发布提交和标签。)

    • git note 以便将您的进程可能需要的任何信息附加到要测试的提交中。

    【讨论】:

    • 我不太明白你在说什么。自从我写了这个问题后,我对我的设置进行了一些改进:我现在有一个 cron 工作,每晚都在做“cap deploy”,所以现在只需增加存储库中的 gem 版本即可。使用“测试”标签和 git note 会帮助我实现什么目标?
    • @DominicGoulet:我的回答是及时部署特定的提交(而不是您每晚可以访问的任何内容),并从附加到该提交的注释中获取 gem 版本,而不是尝试提取它来自一个文件。
    • 好的,但我最初的问题是如何每天晚上部署 git 存储库中的内容。
    • @DominicGoulet:我相信你的 cron 工作应该足够了。我只是指出了在不修改现有提交的情况下附加附加信息的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2019-06-15
    • 2021-01-14
    • 1970-01-01
    • 2015-04-20
    相关资源
    最近更新 更多