GitHubに置いてあるコードを Travis CI を使ってテストを行っていますが、 Travis CIでは通常Linux環境ですが、 OS X環境も使うことが出来ます。
Travis CIのOS X環境
Travis CIの設定ファイルで
os:
- linux
- osx
の様に、osという値にlinuxまたはosxという値を与えることが出来ます。
これによって
$TRAVIS_OS_NAMEという値にこの値が入り使うOSが決まります。
Testing Your Project on Multiple Operating Systems - Travis CI
何も指定しなければlinuxですが、上の様に書けば両方の環境で
1回ずつテストすることになります。
また、
language: objective-c
と、languageにobjective-cを指定した場合にもosxになります。
もしosにlinuxを設定してlanguageにobjective-cを指定した場合には
$TRAVIS_OS_NAMEの値はlinuxになりますが環境自体はOS Xになります。
以前、これを使おうとした時、osの設定が反映されず、
osxを使うときにはlanguageで指定するしかありませんでした。
ですが、どうやら最近はosの値でも使える様になったみたいです。
上のTravis CIのドキュメントでも、osの説明のページは
The feature described in this document is considered beta. Some features may not work as described.
となってるのでまだそのうち使えなくなるかもしれません。
で、このOS Xの環境ですが、 ちょっと古くてOS X 10.9.5 (Mavericks)です。
実際見てみると
$ uname -a
Darwin Traviss-Mac-431.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64
$ if [ "$TRAVIS_OS_NAME" == "osx" ]; then sw_vers; fi
ProductName:Mac OS X
ProductVersion:10.9.5
BuildVersion:13F34
こんな感じになってます。
追記: 2016/02/15
ちなみにMacのバージョンはsw_versというコマンド等を使って取ってこれます。
Linuxの場合にはTravis CIではログの最初の方の
Build system informationの所詳しく情報が載るんですが、
OS Xだとバージョンすら情報が無いので調べるに直接コマンドで見るしかなかったもので。
追記ここまで
ちょっと古いので注意が必要です。 下の記事でも古いのが原因かTravis CIの特殊な環境があるのか定かではありませんが、 手元のEl Capitanの環境にはあるライブラリが見つからなかったりしました。
追記: 2016/09/29
デフォルトではOS X 10.9になりますが、 それを変更する方法があります。
現時点で10.11 (El Capitan)まで使うことが出来ます。
追記ここまで
Travis CIのLinux環境
Linuxの方もデフォルトで見てみると
$ uname -a
Linux testing-gce-82889a3e-b1b0-436e-a14e-0347ac821f2b 3.13.0-63-generic #104~precise1-Ubuntu SMP Tue Aug 18 17:03:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ if [ "$TRAVIS_OS_NAME" == "linux" ]; then cat /etc/issue; fi
Ubuntu 12.04.5 LTS \n \l
こんな感じになっています。
デフォルトのOS環境は現在は Ubuntu 12.04.5になってます。
languageをovjective-cとタイポしたところ14.04.3が使われた。
試しにaaaとかしてみると
こちらもやはり14.04.3。
通常、この14.04.3(Trusty Tahr)を使いたい場合には
dist: trusty
を指定しておきます。
なのですが、何故か間違ったlanguage指定をした場合にも
trusty化してしまうようです。(バグ?)



