continuous-integration - 如何使用jenkins、rvm和cucumber搭建CI环境

标签 continuous-integration hudson rvm jenkins

我是 CI 新手,希望了解您对如何解决我的问题的想法和意见。首先,我想先说一下,我已经为此奋斗了 2 天(而且我在系统广告方面没有太多背景),所以请表现得好一点?(我主要是前端 Web 开发人员):)

基本上我的计划是安装 jenkins,然后通过以下步骤创建 CI 环境:

  1. 轮询 github 的任何更改
  2. 如果有,运行构建脚本: A。迁移开发和测试数据库?(这是否意味着我必须将 config/database.yml 放入我的存储库中?) b.跑 cucumber C。如果所有测试都通过,则转到 3,否则失败
  3. 运行任何 rake 设置内容
  4. 运行服务器(部署)

我通过作弊做了一些事情:

  1. 在我的本地,我将我的 rvm 切换到我需要的正确的(rvm 使用 1.8.7-p174@mygemset)
  2. 运行 jenkins(java -jar jenkins.war) 以便它默认获取 RVM ruby​​
  3. 在单独的终端中运行 spork(因为出于某种原因,我的 cucumber 在没有 spork 的情况下无法运行 - 这是另一个问题)
  4. 通过单击“构建”手动构建项目

所以基本上,我想自动化这些东西。也许我需要的是一组要遵循的步骤(一般或特定,取决于您的口味),以便我可以设置并运行我的 CI。

请记住,我的“作弊”不起作用,因为我想用不同的设置测试不同的项目,而启 Action 弊则不起作用。目前,我的项目构建是成功的,因为我所做的就是运行 cucumber (并且我所有的 cucumber 都通过了)。我希望它能够在通过后进行部署,所以也许那里也有一些帮助?谢谢

最佳答案

好的,我会尽力帮助您。

  1. poll for any changes to github

这可以通过位于 here 的 Github 插件轻松完成。

  1. if there are, run the build script: a. migrate the development and test dbs?(does that mean i have to put the config/database.yml in my repo?) b. run cucumber c. if all tests pass go to 3, else fail

然后您所要做的就是运行您在构建中配置的构建脚本

Select "Add Build Step" -> "Execute shell".

你可以这样做,这可能就是我会做的,因为当你创建构建时,你希望它们是可移植的,这样你就可以在新的 Jenkins 实例中启动,这样你就不必使用构建特定的文件来设置你的构建机器。

然后运行测试,如果测试失败,则无论 here 构建都应该失败是一些有关在 Rails 上运行 ruby​​ 测试的信息。如果您需要根据结果手动使脚本中的构建失败,通常以非零值退出脚本将使构建失败。如果没有继续并运行您的 rake 和部署脚本。

关于 Jenkins 的一些注释,它不会为你做所有的事情,但如果你可以手动完成,Jenkins 可以自动化它。因此,任何您手动设置运行的内容,只需花费一点点努力,就可以使用 Jenkins 自动启动和运行

Here是您可能会发现对 Jenkins 背后的一般设置和意识形态有帮助的另一个答案。

祝你好运!

关于continuous-integration - 如何使用jenkins、rvm和cucumber搭建CI环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6704589/

相关文章:

ruby - 用于 ubuntu 10.04 的 Chef 独奏 Bootstrap

ruby-on-rails - 无法运行 `bundle install`

java - 写入 System.out 或 .err 时测试失败

ssl - TeamCity 和 Mercurial https

installation - 如何在 Windows Server 2008 上安装 Hudson?

hudson - 编写 Jenkins 插件 : where is the documentation?

hudson - 如何在 Hudson-CI 中指定多种可能的结果?

ruby-on-rails - 我如何使用 rvm 安装 ruby​​gems?两者有什么区别?

selenium - 在 TeamCity 持续集成服务器上自动化 Selenium 测试

continuous-integration - circleci : How to run a job with multiple contexts for each environments