LoginSignup
5
2

More than 5 years have passed since last update.

middlemanをwerckerでデプロイしたらエラーが発生した件

Posted at

事象

wercker上でbundle exec middleman build --verboseを実行すると、以下のエラーが発生した。

/pipeline/cache/bundle-install/ruby/2.2.0/gems/middleman-core-4.1.9/lib/middleman-core/util/data.rb:60:in `match': invalid byte sequence in US-ASCII (ArgumentError)

利用しているbox: ruby:2.2.2
利用しているmiddlemanのバージョン: 4.1.9

解決方法

wercker上で、RUBYOPT=-EUTF-8という環境変数を設定する。
wercker.ymlでコマンドで追加する方法と、werckerのGUI上で追加する方法がある。

# wercker.ymlで追加する方法

- script:
    name: set env
    code: export RUBYOPT=-EUTF-8

GUIでは、「setting」の「Environment variables」に環境変数を追加することができる。

原因

rubyのエンコードがUS-ASCIIになっていたのが原因かもしれない。

$ /Users/hikaru/.rbenv/shims/ruby -e 'puts Encoding.default_external' # 手元の環境
UTF-8

$ /usr/local/bin/ruby -e 'puts Encoding.default_external' # CIツール
US-ASCII

参考

参考にさせていただきました。
http://qiita.com/kijibato/items/5e6543fd6e681f916bb0

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2