トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Travis CI

[ソフトウェア開発]

CI(継続的インテグレーション)のホスティングサービス

 実務だとJenkinsなどを使ってプロジェクトで作ったソースコードをビルドしたり、エラーが出たら開発者にメールを送ったり、
 独自のスクリプトを組み込んだり、ユニットテストの結果を出力したりできる。もちろんそのCIのサーバがあるのは社内のサーバだったりするわけです。
 なんですが、最近はオープンソースソフトウェアのテストのためにWEB上に公開されたサーバでそれをやるのがちょっと流行っている。

  Travis

概要
Linux/Mac向けのソフトウェアのビルド環境を貸してくれる

Travis

  • サーバはUbuntu
  • デフォルトのGCCは古いが内部でパッケージ管理システムを動かせるので新しいGCCも使える
  • 最近OS X用のビルドにも対応した(→ パッケージはhomebrewのものを使うらしい)
  • 軽めのアプリであればmingw32/64のパッケージを事前インストール&クロスコンパイルからのwineによる動作テストとかもできる
.travis.yml
Travisの設定ファイルのサンプル
  • Travisでビルドしたいソースコードの一番上のディレクトリに「.travis.yml」を配置する。YAML形式である。
  • GitHubなどのサービスと連携して、ソースがpushされた際にTravisでビルドが走るようにする
  • pushした時以外にも、pull requestが来た時にビルドが走るようにするなど設定が出来る

下記のファイルだけでもなんとなくわかりそうなものだが、気になるところだけ説明

env
Travisビルド時に使用できる環境変数を設定する
compiler
サンプルのように設定すると、同じソースをgccとclangで別々にビルドしてくれる
os
今はLinuxとOS Xに対応している、おそらくこれ以上は増えないだろう

これ以上の説明は本家サイトに譲る

language: cpp

env:
- TRAVIS_CI=true

compiler:
  - g++
  - clang++

os:
  - linux
  - osx

before_install:
  - if [ "$CXX" == "g++" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
  - if [ "$CXX" == "clang++" ]; then sudo add-apt-repository -y ppa:h-rayflood/llvm; fi
  - sudo apt-get update -qq

install:
  # For m4
  - sudo apt-get install -qq gnulib dh-make
  # For package dependency
  - sudo apt-get install libwxgtk2.8-dev libxml2-dev uuid-dev
  # For package build
  - sudo apt-get install debhelper autotools-dev automake gnupg lintian fakeroot pbuilder cdbs
  # g++4.7 ( Ubuntu provide wx-2.8, which would be build by gcc 4.7 , cannot build by 4.8 ? ) 
  - if [ "$CXX" = "g++" ]; then sudo apt-get install -qq g++-4.7; fi
  - if [ "$CXX" = "g++" ]; then export CXX="g++-4.7"; fi

before_script:
  - autoreconf -i -I/usr/share/gnulib/m4 -I `pwd`/m4

script:
  - ./configure && make package-deb-local

branches:
  only:
    - master

notifications:
  email:
    on_success: change
    on_failure: always

  AppVeyor

概要
Windows向けのソフトウェアのビルド環境を貸してくれる

お名前: コメント: