文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

jenkinsからの実行時、意図したrubyのバージョンで実行されない(最新バージョンで実行されてしまう)


■ 問題
実行するノードに、指定しているrubyよりも新しいバージョンが入っている場合そのバージョンで実行されてしまう。



まず、実行するノードに直接はいって状態の確認。


C:\Users\guest>PATH
C:\Windows\system32;・・・(略)・・・C:\Ruby22-x64\bin;C:\Ruby23-x64\bin;

⇒ このマシンにはRuby2.3も入っている。


Rubyのバージョンは

C:\Users\guest>ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155)

2.2が実行されるように設定されている。
なので、マシンから直接たたけば2.2で実行される。


しかし、jenkinsでビルドすると2.3で実行されてしまう・・・・。




■ 原因

はっきりとは特定できてない。
けど、、jenkins > ノード > 環境変数にRuby2.3のパスもばっちり書かれていてパスが通った状態になっているので
これが原因で最新を見て実行されているのかな。。



■ 対策

ビルドするジョブの jenkinsの設定>スクリプト で実行したいrubyのバージョン以外を除外したパスをset path ~で設定する

set path=C:\Windows\system32;・・・(略)・・・C:\Ruby22-x64\bin;

「C:\Ruby23-x64\bin;」を除外してわざわざパスが通らないようにしてから実行するという対策をとりました。

これで2.2で動くようになりました。




・・・こんなことしなくても解決する方法があるはずですorz