2012-06-28 41 views
0

我有一个破碎的构建哈德森CI,我不知道如何解决。问题看起来非常简单 - gem的不正确版本被加载 - 但Hudson控制台输出似乎与错误消息相矛盾。哈德森加载错误版本的宝石构建

哈德森的console输出编译:

[...hudson fetching code from SCM...] 

Commencing build of Revision 496c7a18b3b56b14037d2d643858cec217be289a (origin/master) 
Checking out Revision 496c7a18b3b56b14037d2d643858cec217be289a (origin/master) 
[workspace] $ bash -xe /tmp/hudson424603273172296439.sh 
+ export RAILS_ENV=hudson 
+ RAILS_ENV=hudson 
+ bundle install 

[...list of a bunch of gems, truncated...] 

Using launchy (2.1.0) 

[...the rest of the gems...] 

[32mYour bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.[0m 
+ bundle exec rake hudson:all --trace 
/home/build/build_gems/gems/bundler-1.0.7/lib/bundler/runtime.rb:27:in `setup': You have already activated launchy 0.3.7, but your Gemfile requires launchy 2.1.0. Consider using bundle exec. (Gem::LoadError) 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/runtime.rb:17:in `setup' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler.rb:100:in `setup' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/cli.rb:343:in `exec' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `send' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `run' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/vendor/thor.rb:246:in `dispatch' 
    from /home/build/build_gems/gems/bundler-1.0.7/lib/bundler/vendor/thor/base.rb:389:in `start' 
    from /home/build/build_gems/gems/bundler-1.0.7/bin/bundle:13 
    from /home/build/build_gems/bin/bundle:19:in `load' 
    from /home/build/build_gems/bin/bundle:19 
Build step 'Execute shell' marked build as failure 

因此,bundle install命令显示正在使用launchy (2.1.0),但错误说launchy 0.3.7已被激活。我不确定哪里存在这种差异/冲突。你可以看到,我们使用bundle exec来运行构建,因此应该使用这个包,所以我不确定这里发生了什么。

在哈德森项目配置的 “构建=>执行壳” 部分,我已经下面三行,这是所有:

export RAILS_ENV="hudson" 
bundle install 
bundle exec rake hudson:all --trace 

Gemfile具有:

... 
group :development, :cucumber, :test,:hudson do 
    gem "populator", ">= 0.2.5" 
    gem "factory_girl",">= 1.2.1" 
    gem "faker", ">= 0.3.1" 
    gem "rspec", "1.3.2" 
    gem "rspec-rails", "1.3.4" 
    gem "webrat" 
    gem "capybara" 
    gem 'launchy' 
    gem "cucumber","1.1.8" 
    gem "cucumber-rails","0.3.2" 
    gem "database_cleaner" 
    gem "ruby-debug" 
end 
... 

Gemfile.lock has

GEM 
    ... 
    specs: 
    ... 
    launchy (2.1.0) 
    ... 
... 

DEPENDENCIES 
    ... 
    launchy 
    ... 

回答