JenkinsのSSHスレーブが文字化けする場合
たとえば、DockerでテキトーにSSHスレーブを構成したりすると、スレーブでのビルドでUTF-8文字列が化けたりします。 ロケールがズレてるからですね。
スレーブの環境変数パネルに LC_ALL=en_US.UTF-8
を設定しても無駄だったりしますので、
スレーブ自体の java
プロセスの環境変数に LC_ALL=en_US.UTF-8
が入るようにしましょう。
Jenkinsのノードの設定値の画面で下記のように起動コマンドのPrefixとSuffixを設定してあげましょう。
# Prefix Start Slave Command sh -c 'export LC_ALL="en_US.UTF-8"; # Suffix Start Slave Command (シングルクォートのみ書く) '
#Jenkins のSSH型スレーブのスレーブ自体のjavaプロセスの環境変数を設定したい場合は
prefix: sh -c 'export LC_ALL=en_US.utf-8;
suffix: '
ってやるといいです。
スレーブで文字化けに困ってる場合など。
— (call me #'knjname) (@knjname) 2015, 2月 26
@knjname こうなるのだ pic.twitter.com/cUCnZ7WUUd
— (call me #'knjname) (@knjname) 2015, 2月 26