Techioz Blog

Ubuntu Webhook がインストールされている正しい RVM Ruby を読み取らない

概要

bash スクリプトを実行することで、マシン上で自動的に Ruby の処理を行うために、システムに Webhook を設定しようとしています。問題は、スクリプトを手動で実行するときに使用される Ruby が、フックを使用して実行される Ruby とは異なることです。

以下は、Ruby 値を出力する単純な bash スクリプト (test-ruby.sh) です。

#!/bin/sh
echo 'Tetsing...'
ruby -v;
which ruby;
bundle -v;
which bundle;

以下は、sh test-ruby.sh 経由で実行した場合の出力です。

以下は、フックを介して同じスクリプトをトリガーした場合の出力です。

注意事項:

解決策

#1 ファイルの先頭は次のようになります。

#!/bin/bash

#2 スクリプトの先頭で RVM 環境を強制的にロードする

[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm" # Load RVM into a shell session as a function