【发布时间】:2014-10-27 10:34:28
【问题描述】:
我正在尝试在我的企业中部署一个实验性的 Rails 应用程序。这里的一切都是为 Java 开发准备的,所以我必须开辟新天地才能获得公司对 Rails 的认可。
我需要使用 Jenkins CI (v. 1.580) 在办公室的 CentOS(版本 5.9)暂存服务器上部署我的 Rails 4.1.4 应用程序(ruby-2.1.2),作为我之前的概念证明将允许应用靠近生产服务器。
我在 Jenkins 中安装了以下插件并重新启动:Hudson Ruby 插件、rvm、Rake 插件、ruby-runtime、用于 Jenkins 的 RubyMetrics 插件、GIT 客户端插件、GIT 插件、GitHub API 插件、GitHub 插件
在 RVM 初始化脚本期间,Jenkins 构建似乎失败,输出如下。
我的 Jenkins .bashrc 文件如下所示:
#/var/lib/jenkins/.bashrc
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
还有.rvmrc:
#/var/lib/jenkins/.rvmrc
export rvm_trust_rvmrcs_flag=1 # always trust project .rvmrc
export rvm_install_on_use_flag=1 # auto install rubies
export rvm_gemset_create_on_use_flag=1 # auto install gemsets
我已尝试使用多用户说明对 RVM 进行 nuking 并重新安装,并确保我的 jenkins 用户是 rvm 组的成员。
我的构建脚本如下所示:
source ~/.bashrc # Loads RVM
cd . # Loads the RVM environment set in the .rvmrc file
# set env vars
#export GEM_PATH=/usr/local/lib/ruby/gems/1.2/gems
#export CI_REPORTS=results
export RAILS_ENV=test
#cp config/database.yml.example config/database.yml
# creates a database.yml
bundle install # Installs gems
rake db:schema:load # Loads all the database schema
rake # Runs RSpec tests
这是来自 Jenkins 的完整控制台输出
Started by user Pete
Building in workspace /var/lib/jenkins/jobs/MerchantManager/workspace
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://github.com/***/epgDataPoc # timeout=10
Fetching upstream changes from https://github.com/***/epgDataPoc
> git --version # timeout=10
using .gitcredentials to set credentials
> git config --local credential.helper store --file=/tmp/git5734173224303904567.credentials # timeout=10
> git fetch --tags --progress https://github.com/***/epgDataPoc +refs/heads/*:refs/remotes/origin/*
> git config --local --remove-section credential # timeout=10
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 8bced4d8fecd4135bcb4868aa4011e140adf46d3 (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 8bced4d8fecd4135bcb4868aa4011e140adf46d3
> git rev-list 8bced4d8fecd4135bcb4868aa4011e140adf46d3 # timeout=10
[workspace] $ /bin/bash -xe /tmp/hudson1400066644804618273.sh
+ source /var/lib/jenkins/.bashrc
++ [[ -s /var/lib/jenkins/.rvm/scripts/rvm ]]
++ source /var/lib/jenkins/.rvm/scripts/rvm
+++ builtin test -n '3.2.25(1)-release' -o -n ''
+++ case "`uname`" in
++++ uname
++++ command ps -p 29628 -o ucomm=
++++ ps -p 29628 -o ucomm=
+++ __shell_name=bash
+++ case "$__shell_name" in
+++ unset __shell_name
+++ __rvm_has_opt posix
+++ [[ -n '' ]]
+++ [[ -n 3.2.25(1)-release ]]
+++ [[ :braceexpand:errexit:hashall:interactive-comments:xtrace: =~ :posix: ]]
+++ return 1
+++ export HOME rvm_prefix rvm_user_install_flag rvm_path
+++ HOME=/var/lib/jenkins
+++ [[ -n '' ]]
++++ umask
+++ export rvm_stored_umask=0022
+++ rvm_stored_umask=0022
+++ (( 0 == 0 ))
+++ rvm_rvmrc_files=("/etc/rvmrc" "$HOME/.rvmrc")
+++ [[ -n '' ]]
+++ for rvmrc in '"${rvm_rvmrc_files[@]}"'
+++ [[ -f /etc/rvmrc ]]
+++ GREP_OPTIONS=
+++ command grep '^\s*rvm .*$' /etc/rvmrc
Build step 'Execute shell' marked build as failure
Publishing rails stats report...
hudson.model.StreamBuildListener@1bb557c8
Finished: FAILURE
【问题讨论】:
-
使用 rvm 1.26.4 在 OSX Yosemite 上遇到同样的问题
标签: ruby-on-rails jenkins rvm