【问题标题】:How to set up Rails build on Cloudbees?如何在 Cloudbees 上构建 Rails?
【发布时间】:2013-06-21 11:54:22
【问题描述】:

我正在尝试在 Cloudbees 上设置 Rails 作业,但遇到了无法再解决的问题。我尝试按照说明进行操作,但没有找到足够的详细信息来自己找出问题所在。

这是我的工作的 Shell 执行部分目前的样子:

curl -s -o use-ruby https://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/ruby/use-ruby
RUBY_VERSION=1.9.3-p327 source ./use-ruby
bundle install --path vendor/bundle
bundle exec rake db:test:create
bundle exec rake test

我实际上还不确定最后两行,因为我从来没有超过第 3 行;)

当我运行它时,我得到以下结果:

(...)
Commencing build of Revision 2e1549004e2b49903d4d006ad8bfa7e4b4bfda08 (origin/master)
Checking out Revision 2e1549004e2b49903d4d006ad8bfa7e4b4bfda08 (origin/master)
[API Continuous Testing] $ /bin/sh -xe /tmp/hudson4854632522106638677.sh
+ curl -s -o use-ruby https://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/ruby/use-ruby
+ RUBY_VERSION=1.9.3-p327
+ source ./use-ruby
++ [[ -z 1.9.3-p327 ]]
++ ruby187='1.8.7-*'
++ [[ 1.9.3-p327 == 1.8.7-* ]]
++ '[' '!' -f /scratch/jenkins/use.sh ']'
++ . /scratch/jenkins/use.sh
++ mkdir -p /scratch/jenkins/ruby
+++ addon_architecture
+++ uname -m
++ ruby_name=ruby-1.9.3-p327-x86_64
++ '[' '!' -f /scratch/jenkins/ruby/ruby-1.9.3-p327-x86_64.tar.bz2 ']'
++ '[' '!' -f /scratch/jenkins/ruby/ruby-1.9.3-p327-x86_64/bin/ruby ']'
++ export PATH=/scratch/jenkins/ruby/ruby-1.9.3-p327-x86_64/bin:/opt/jdk/jdk1.6.latest/bin:/opt/jdk/latest/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/opt/maven/latest/bin:/opt/ant/latest/bin:/opt/android/android-sdk-linux/tools:/opt/gradle/latest/bin:/home/jenkins/bin:/opt/jdk/jdk.latest/bin
++ PATH=/scratch/jenkins/ruby/ruby-1.9.3-p327-x86_64/bin:/opt/jdk/jdk1.6.latest/bin:/opt/jdk/latest/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/opt/maven/latest/bin:/opt/ant/latest/bin:/opt/android/android-sdk-linux/tools:/opt/gradle/latest/bin:/home/jenkins/bin:/opt/jdk/jdk.latest/bin
++ unset GEM_PATH
++ unset GEM_HOME
++ unset BUNDLE_PATH
+ bundle install --path vendor/bundle
/tmp/hudson4854632522106638677.sh: line 5: bundle: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我假设在 Cloudbees 安装程序完成后,“捆绑包”可供我执行。这不对吗?还是我错过了什么?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 jenkins continuous-integration cloudbees


    【解决方案1】:

    默认情况下不包含 Bundler,因为有很多版本(有些人更喜欢更新/旧/预发布版本)。

    关于以下 bcrypt 问题,它是由作业名称中的空格引起的。我已将相关工作重命名,现在它通过了。

    我还添加了 PostgreSQL 安装程序,因此您的完整安装现在可以成功完成。

    有关 PostgreSQL 配置(准备用户和数据库)的更多信息,您应该参考http://wiki.cloudbees.com/bin/view/DEV/PostgreSQL

    【讨论】:

    • 太棒了,非常感谢你们,非常大的帮助! :) 看起来我仍然需要解决一些问题才能让它运行并为自己获得价值(包括我的一些学习)但我会接受你的回答,因为这似乎可以解决我最初处理的问题:)
    【解决方案2】:

    我认为您可能需要安装 bundler,就好像它是“正常”的 ruby​​ 安装一样:

    gem install bundler
    

    作为第一件事(因为它不附带 ruby​​ 本身)

    (虽然我可以理解为什么“use-ruby”脚本可以做到这一点 - 我会看看它是否可以)。

    【讨论】:

    • 哦,现在这行得通,让我更进一步。现在一个 Gem 安装失败:“正在安装 bcrypt-ruby (3.0.1) Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.”这会导致构建进一步失败。对此有任何想法吗?
    • 根据 Google 和 StackOverflow 的说法,主要原因之一是没有安装 Ruby“Dev”包。我尝试按照“apt-get install ruby​​1.9.1-dev”或修改 Cloudbees Ruby 发行版的名称来进行一些组合,但这一切都不起作用。有什么提示吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多