Mac 上の Jenkins ジョブを Windows 上に移植する際に躓いた点をメモする.
動作環境
- Windows 10
- Jenkins 2.7.2
- Unity 5.3.4p5
- Cygwin 2.5.2
環境変数
- 参照方法は UNIX 系では
${ENV_VAR}
だが, Windows では%ENV_VAR%
である - ただし Jenkins 自体の環境変数の扱いは Windows 上であっても UNIX 形式である
パスの表記
Unity
- Windows のバックスラッシュ区切りのパスは無視される
- パスは Windows であってもスラッシュ区切りで表記する必要がある
- e.g.
d:\foo\bar
はd:/foo/bar
へと書き直す必要がある
- e.g.
WORKSPACE="d:\foo\bar\workspace"
WORKSPACE_UNITY=`echo ${WORKSPACE} | sed -e 's/\\\\/\\//g'`
echo ${WORKSPACE_UNITY}
d:/foo/bar/workspace
Cygwin
- UNIX のスラッシュ区切りのパスを用いる
- ドライブは
/cygdrive/
以下にマウントされている- e.g.
d:\foo\bar
は/cygdrive/d/foo/bar
へと書き直す必要がある
- e.g.
WORKSPACE="d:\foo\bar\workspace"
WORKSPACE_CYGWIN=`echo ${WORKSPACE} | sed -e 's/\\\\/\\//g' -e 's/://g' -e 's/^/\\/cygdrive\\//g'`
echo ${WORKSPACE_CYGWIN}
/cygdrive/d/foo/bar/workspace
改行コード
- 改行コードは Mac では LF だが Windows では CR+LF である
- git リポジトリで管理しているファイルの改行コードを統一するための対応が必要となる