# -*- rd -*-

= Travis CIとの統合

== はじめに

このセクションでは ((<"Travis CI"|URL:http://travis-ci.org>)) 上で
Cutterを使う方法について説明します。

Travis CIはオープンソースコミュニティ用の継続的インテグレーション（CI）サービスです。

オープンソースソフトウェアを開発しているならTravis CIを使えます。
このセクションではCutter関連の設定のみ説明します。
Travis CI一般については
((<"Travis CI"|URL:http://about.travis-ci.org/docs/>)) を読んでください。

== 設定

Travis CIは64-bit版のUbuntu 12.04を使っています。（
((<"Travis CI: About Travis CI 
Environment"|URL:http://about.travis-ci.org/docs/user/ci-environment/>)) 
参照。）
Travis CIにCutterをインストールするために、Cutterプロジェクトが提供している
Ubuntu 12.04用のapt-lineを使えます。

(({.travis.yml})) でビルド方法を変更することができます。（ 
((<"Travis CI:Conifugration your Travis CI build with 
.travis.yml"|URL:http://about.travis-ci.org/docs/user/build-configuration/>)) 
参照。）

プロジェクトの使用言語に応じて (({before_install:})) フックまたは (({install:}))
フックを使います。

=== C/C++の設定

C/C++の場合、デフォルトとなる依存関係のインストールが行われないため、
(({install:})) フックを使ってセットアップスクリプトを実行するのがお勧めです。 ((-
((<"Travis CI: Building a C 
Project"|URL:http://about.travis-ci.org/docs/user/languages/c/>))
「Dependency Management」や((<"Travis CI: Building a C 
Project"|URL:http://about.travis-ci.org/docs/user/languages/cpp/>))
「Dependency Management」にはデフォルトの依存関係のインストールを行わないと
説明があります。-))

以下の (({install:})) の設定を (({.travis.yml})) に加えます:

  install:
    - curl --silent --location https://raw.github.com/clear-code/cutter/master/data/travis/setup.sh | sh

上記の設定でビルド中にCutterを使えるようになります。

=== その他の言語の設定

ライブラリの言語バインディングを書いていて、そのテストをCutterを使って
実施しているプロジェクトでは、プロジェクトの言語ごとのデフォルトとなる依存関係の
インストールルールを上書きしないように (({before_install:})) フックを使って
セットアップスクリプトを実行するのがお勧めです。 ((-
((<"Travis CI: Configuring your Travis CI build with 
.travis.yml"|URL:http://about.travis-ci.org/docs/user/build-configuration/>))
「Build Lifecycle」には (({install:})) でプロジェクトの言語に応じた依存関係の
インストールを行うと説明があります。-))

以下の (({before_install:})) の設定を (({.travis.yml})) に加えます:

  before_install:
    - curl --silent --location https://raw.github.com/clear-code/cutter/master/data/travis/setup.sh | sh

上記の設定でビルド中にCutterを使えるようになります。

== 例

Travis CI上でCutterを使っているフリーソフトウェアは以下の通りです。

  * ((<Goonga|URL:http://groonga.org/>))

    * ((<Travis CIでのGroongaのビルド結果|URL:http://travis-ci.org/groonga/groonga>))
    * ((<Groonga用の.travis.yml|URL:https://github.com/groonga/groonga/blob/master/.travis.yml>))
