PHP
GitHub
travis

ド素人のための Travis CI の使い方 (公式ガイドより)

Travis CI for Complete Beginners - Travis CI より

動作確認用のレポジトリをForkする

https://github.com/plaindocs/travis-broken-example で Fork ボタンを押すだけ

( * Forkは好きなレポジトリを自分のレポジトリとして、まるまるコピー出来る機能)

ForkしたレポジトリをCloneする

手元に持ってくる

$ git clone git@github.com:YOUR_USER_NAME/travis-broken-example.git
$ cd travis-broken-example

Travisの設定ファイルを見てみる

何やらいろいろ書かれているが、複数の php バージョンでテストしようとしてるのが分かる。
hhvm というのも php 環境のひとつらしい。

.travis.yml
language: php # テスト言語
php:
- 5.5 # 環境その1
- 5.4 # 環境その2
- hhvm # 環境その3
script: phpunit Test.php # この処理がCIとして走る

テストスクリプトを確認

あえて失敗するテストが書かれている。

1+1=1 を期待しているテストなので、失敗するのが正しい状態。

Test.php
<?php
class Test extends PHPUnit_Framework_TestCase
{
    public function testOnePlusOne() {
        $this->assertEquals(1+1,1);
    }
}
?>

Travis CI に登録する

https://travis-ci.org/ より。

Travis でレポジトリを有効化する

image.png

ブランチが表示されない場合

「Sync account」を試す。

image.png

適当なコミットを作ってプッシュする

$ git add -A
$ git commit -m 'Testing Travis CI'
$ git push

テストが回り始める

複数のPHP環境で、それぞれテストが動くのが分かる。

image.png

やがてテストが落ちる

これも期待通りの動作。

image.png

テストファイルを修正する

1+1=2 にする。

( 1+1 って 2 ですよね? 皆さん! )

Test.php
<?php

class Test extends PHPUnit_Framework_TestCase
{
    public function testOnePlusOne() {
-       $this->assertEquals(1+1,1);
+       $this->assertEquals(1+1,2);
    }
}

?>

git push する

新しいテストが回り、今度は成功する

image.png

やったぜ!

バッジを付けてみる

ちょっと分かりにくいが、Travis CI に表示されている「バッジボタン」を押すと埋め込みコードを取得できる。

画面に見えてるこいつ => image.png

形式は Markdownを選ぶ。

これを Github のREADMEなどに貼り付ければ良い。
(お試しにIssueやWikiに貼っても良いと思う)

image.png

Github の README に埋め込みコードを追加

image.png

表示例

このバッジでCIが通っているか、落ちているかを確認できるようになる。

image.png