LoginSignup
17
16

More than 5 years have passed since last update.

【TravisCI高速化】make時にオプションを付けたら超絶高速になった

Posted at

はじめに

背景

  • TravisCIで以下のようなことを実行してみた
    • openCVのインストール
    • railsアプリの起動
    • 単体/受け入れテスト
  • ところが、openCVのインストールを当然ながら毎回するので、30分程度環境構築にかかってしまう
  • それでは使い物にならないため、改善できるところがないか考えてみた

改善

オプションの指定

  • make,make installに付けるオプションは-j2,-j4, -j8のようにすればジョブ数の指定ができる
  • 目安として$ make -j ${コア数 x 2}と上の記事で書いてあったのでコア数を確認

Travisのインスタンスのコア数

TravisCIに適したオプション

  • 他のサービスの.travis.ymlをいくつか覗いてみると、-j4や-j8と書かれていたものがちょこちょこ見られた
  • -j(ジョブ数制限なし=無制限)はシステムに影響を与える可能性があると書いてあったが、-j4, -j8, -jオプション付きでそれぞれ試してみた
    • 結果、-j4, -j8, -jに大差はなかった
  • 結論として、TravisCIではmakeのオプションは-j4,-j8を使うのがアンパイなのかもしれない
    • というかオプションなしでは遅すぎてCIどころじゃない

効果確認

  • openCVのインストールを含めた環境構築に30分程度かかっていたものが8〜10分でできるようになった
curl -sL https://github.com/Itseez/opencv/archive/2.4.5.zip > opencv.zip
unzip opencv.zip > $HOME/opencv.log
cd opencv-2.4.5
mkdir build
cd build/
cmake -D BUILD_EXAMPLES=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D WITH_1394=OFF -D ENABLE_OPENMP=ON ../ 
make -j4  #<= オプション追加
sudo make -j4 install  #<= オプション追加
sudo ldconfig

~ただの宣伝~

  • 全国のSeleniumer必読
  • Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください
17
16
1

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
17
16