<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry 
  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="travis-ci-integration">
<refmeta>
  <refentrytitle role="top_of_page" id="travis-ci-integration.top_of_page">Travis CIとの統合</refentrytitle>
  <refmiscinfo>Cutterライブラリ</refmiscinfo>
</refmeta>
<refnamediv>
  <refname>Travis CIとの統合</refname>
</refnamediv>
<refsect1>
  <title>はじめに</title>
  <para>
  このセクションでは 
  <ulink url="http://travis-ci.org">Travis CI</ulink>
   上でCutterを使う方法について説明します。
</para>
  <para>Travis CIはオープンソースコミュニティ用の継続的インテグレーション（CI）サービスです。</para>
  <para>
  オープンソースソフトウェアを開発しているならTravis CIを使えます。このセクションではCutter関連の設定のみ説明します。Travis CI一般については
  <ulink url="http://about.travis-ci.org/docs/">Travis CI</ulink>
   を読んでください。
</para>
</refsect1>

<refsect1>
  <title>設定</title>
  <para>
  Travis CIは32-bit版のUbuntu 11.10を使っています。（
  <ulink url="http://about.travis-ci.org/docs/user/ci-environment/">Travis CI: About Travis CI  Environment</ulink>
   参照。）Travis CIにCutterをインストールするために、Cutterプロジェクトが提供しているUbuntu 11.10用のapt-lineを使えます。
</para>
  <para>
  <code>.travis.yml</code>
   でビルド方法を変更することができます。（ 
  <ulink url="http://about.travis-ci.org/docs/user/build-configuration/">Travis CI:Conifugration your Travis CI build with  .travis.yml</ulink>
   参照。）
</para>
  <para>
  プロジェクトの使用言語に応じて 
  <code>before_install:</code>
   フックまたは 
  <code>install:</code>
  フックを使います。
</para>
  <refsect2>
  <title>C/C++の設定</title>
  <para>
  C/C++の場合、デフォルトとなる依存関係のインストールが行われないため、
  <code>install:</code>
   フックを使ってセットアップスクリプトを実行するのがお勧めです。 
  <footnote>
  <para>
  
  <ulink url="http://about.travis-ci.org/docs/user/languages/c/">Travis CI: Building a C  Project</ulink>
  「Dependency Management」や
  <ulink url="http://about.travis-ci.org/docs/user/languages/cpp/">Travis CI: Building a C  Project</ulink>
  「Dependency Management」にはデフォルトの依存関係のインストールを行わないと説明があります。
</para>
</footnote>
  
</para>
  <para>
  以下の 
  <code>install:</code>
   の設定を 
  <code>.travis.yml</code>
   に加えます:
</para>
  <programlisting>install:
  - curl https://raw.github.com/clear-code/cutter/master/data/travis/setup.sh | sh</programlisting>
  <para>上記の設定でビルド中にCutterを使えるようになります。</para>
</refsect2>

  <refsect2>
  <title>その他の言語の設定</title>
  <para>
  ライブラリの言語バインディングを書いていて、そのテストをCutterを使って実施しているプロジェクトでは、プロジェクトの言語ごとのデフォルトとなる依存関係のインストールルールを上書きしないように 
  <code>before_install:</code>
   フックを使ってセットアップスクリプトを実行するのがお勧めです。 
  <footnote>
  <para>
  
  <ulink url="http://about.travis-ci.org/docs/user/build-configuration/">Travis CI: Configuring your Travis CI build with  .travis.yml</ulink>
  「Build Lifecycle」には 
  <code>install:</code>
   でプロジェクトの言語に応じた依存関係のインストールを行うと説明があります。
</para>
</footnote>
  
</para>
  <para>
  以下の 
  <code>before_install:</code>
   の設定を 
  <code>.travis.yml</code>
   に加えます:
</para>
  <programlisting>before_install:
  - curl https://raw.github.com/clear-code/cutter/master/data/travis/setup.sh | sh</programlisting>
  <para>上記の設定でビルド中にCutterを使えるようになります。</para>
</refsect2>

</refsect1>

<refsect1>
  <title>例</title>
  <para>Travis CI上でCutterを使っているフリーソフトウェアは以下の通りです。</para>
  <itemizedlist>
  <listitem>
  <para>
  <ulink url="http://groonga.org/">goonga</ulink>
  
</para>
  <itemizedlist>
  <listitem>
  <para>
  <ulink url="http://travis-ci.org/#!/groonga/groonga">Travis CIでのgroongaのビルド結果</ulink>
  
</para>
</listitem>
  <listitem>
  <para>
  <ulink url="https://github.com/groonga/groonga/blob/master/.travis.yml">groonga用の.travis.yml</ulink>
  
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</refsect1>
</refentry>
