2016-11-10 70 views
0

我有一個groovy腳本,它在Jenkins管道中運行一個作業,但它在嘗試運行bundle時失敗。我得到的錯誤Bundle命令未找到 - Jenkinsfile groovy

bundle: command not found 

我以爲我包括我的構建過程中的PATH變量,但似乎並非如此

node { 
    stage 'Bundle Build' 
    withEnv(['PATH=/usr/bin:/bin:/usr/sbin:/:sbin/usr/local/bin:$PATH']) { 
    sh '''bundle''' 
} 

}

當我運行which bundle我得到/Users/Jenkins/.rvm/gems/ruby/bin/bundle

但是我的版本在/Users/Jenkins/.jenkins下運行

如何在創建工作時使用包?

任何幫助表示讚賞

感謝

UPDATE

如果我運行此然而它的工作原理

node { 
    stage 'Bundle Build' 
    withEnv(['PATH=/usr/bin:/bin:/usr/sbin:/:sbin/usr/local/bin:$PATH']) { 
    sh '''#!/bin bash -l 
      bundle''' 
} 

}

但是這似乎不正確的

+0

是否有不會的輕鬆路線或者提供完整的路徑'bundle'或添加一個原因'/ Users/Jenkins/.rvm/gems/ruby​​/bin到'withEnv'數組? –

+0

已經嘗試過,但它仍然無法正常工作,唯一可以讓它工作的方式是如果我運行我的shell腳本作爲'#!/ bin/bash -l',這對我來說會感覺不對 – Richlewis

+0

什麼是shell腳本? –

回答

0

試試這個

node { 
    stage 'Bundle Build' 
    withEnv([ 
     "PATH=$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH", 
     "RBENV_SHELL=sh" 
     ]) { 
    sh '''bundle''' 
} 

請確保該路徑.rbenv是正確的