rcmdnk's blog
Last update

ザ・マン・フー

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

と、languageobjective-cを指定した場合にもosxになります。

Running jobs on Mac OS X infrastructure - Travis CI

もしoslinuxを設定してlanguageobjective-cを指定した場合には $TRAVIS_OS_NAMEの値はlinuxになりますが環境自体はOS Xになります。

Job #164.1 - rcmdnk/travis-test - Travis CI

以前、これを使おうとした時、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)です。

The OS X Build Environment - Travis CI

実際見てみると

$ 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

Job #160.2 - rcmdnk/travis-test - Travis CI

こんな感じになってます。

追記: 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

Job #165.1 - rcmdnk/travis-test - Travis CI

こんな感じになっています。

デフォルトのOS環境は現在は Ubuntu 12.04.5になってます。

The Build Environment - Travis CI

languageovjective-cとタイポしたところ14.04.3が使われた。

Job #161.1 - rcmdnk/travis-test - Travis CI

試しにaaaとかしてみると

Job #170.1 - rcmdnk/travis-test - Travis CI

こちらもやはり14.04.3。

通常、この14.04.3(Trusty Tahr)を使いたい場合には

dist: trusty

を指定しておきます。

The Trusty beta Build Environment - Travis CI

Job #171.1 - rcmdnk/travis-test - Travis CI

なのですが、何故か間違ったlanguage指定をした場合にも trusty化してしまうようです。(バグ?)

Sponsored Links
Sponsored Links

« Brew-fileでApp Storeのアプリも含めてMacを完全自動初期化 WindowsでTeamViwerによって導入される余計なボタンの削除 »

}