<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <dfn>Travis CI</dfn> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CI</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサービス</anchor>です。
この分野では草分け的存在です。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">Travis CI - Distributed build platform for the open source community</cite>
( (<time>2012-04-08 11:34:45 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://travis-ci.org/">http://travis-ci.org/</anchor-external></li></ul></refs><section><h1>Travis CI 使ってみた</h1><preamble xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 初出:
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/wakabatan/20120408/1333878824">http://d.hatena.ne.jp/wakabatan/20120408/1333878824</anchor-external>,
<time>2012-04-08</time></p></preamble><p>テストをいい感じで勝手に実行してくれるのないかなーと思ってたら、 Travis CI<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://travis-ci.org/">http://travis-ci.org/</anchor-external> とかいうのがあると聞いたので、試しに使ってみました。</p><p>仕事では昔からそういうのやってて、最初は自分で作っていたり、最近は Jenkins 氏になっていたりしますが、適当なタイミングでテストが実行されて結果が IRC に流れてくる環境が整っています。仕事以外のプロジェクトもそうしたいと思っていましたが、自作にしろ既製品にせよ環境の構築と維持が面倒です。</p><p>Travis CI は Continuous Integration for the Open Source Community というキャッチフレーズ(?)の、 GitHub 上のソフトウェアの CI サービスです。 GitHub アカウントでログインしてリポジトリを選択して、あとはリポジトリ内に簡単な設定ファイル (言語とか実行するコマンドとか) を用意して push するだけ<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://about.travis-ci.org/docs/user/getting-started/">http://about.travis-ci.org/docs/user/getting-started/</anchor-external>で、あちらのサーバーで実行してくれます。とっても手軽で便利です。</p><p>開発・運用リソースはもちろん、サーバーや回線の費用も結構かかってるだろうに、どうやって運営しているんだ、と心配になってきますが、たくさんのスポンサーのみなさま<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://love.travis-ci.org/">https://love.travis-ci.org/</anchor-external>が支えてくださっているそうで、とてもありがたい話です。</p><p>使い方はとても簡単なのでドキュメントを読みましょう。以下は使ってみて気づいたことなどのメモです。</p><section><h1>登録</h1><p>Travis 側でログインしてリポジトリを選ぶだけで登録できます。あとは push するだけ。簡単すぎて拍子抜けします。</p></section><section><h1>ビルド</h1><p>今回はいくつかの Perl のモジュールのテストを実行する処理を登録しています。 Perl のバージョンは何種類か用意されていて、リポジトリの <code>.travis.yml</code> で指定することができます。</p><p>ただし、最新の 5.14 を指定したのに、なぜか perl -v したら 5.12.4 と出てきました。不思議ですねw あらかじめ用意されていないバージョンがどうしても使いたければ、自分で perlbrew で入れてしまえばOKです。</p><p>Perl 本体と cpanm は元から用意されていますが、他に必要なモジュールがあれば、自分で入れる必要があります。 carton などで開発環境を簡単に用意できるように既になっていれば、そのコマンドを <code>.travis.yml</code> に指定するだけです。 XS モジュールが C のライブラリに依存しているような場合でも、 apt でインストールできるようです。</p><p>MySQL や MongoDB など、よく使われてそうなストレージは最初から用意されています。 Perl だと Test::mysqld でテストを書いたりしますが、特に何も設定しなくても普通に実行できます。</p><p>Perl など、言語のバージョンは複数指定できます。複数指定するとそれぞれ並行してビルドを実行してくれます。</p><p>テストスクリプトの出力はできるだけ綺麗にしておいた方がいいです。同じ出力が繰り返されていたり、一定サイズに達したりすると、無限ループと判断されて強制終了されるみたいです。 Wide character がうんたらみたいな Perl の警告を放置していたら、長いテストの途中で切られてしまいました。そこまでいかなくても、あまりにサイズが大きいと Web サイト上で結果を表示する時に動きがとても遅くなって不便です。</p><p>なお、ビルド環境は毎回リセットされるみたいなので、難しいことは考えずに必要なものはどんどん入れてしまってOKです。逆に言えば、依存モジュールのインストールなどの時間がかかる作業も毎回行う必要があります。</p></section><section><h1>結果</h1><p>実行結果は Web サイト上で確認できる他、メール、 IRC、 Web Hooks で通知を受け取ることができます。</p><p>Web サイトのトップにいきなり自分のプロジェクトが出てくるのでちょっとびっくりしますがw、それを選択すると実行の進捗や結果、履歴を見ることができます。</p><p>プロジェクトの IRC チャンネルがあれば、そこに通知を流すのが良さそうです。</p><p>時間帯などにもよるのかもしれませんが、 push するとほぼ即座にビルドが開始されるようです。ビルドにかかる時間はもちろんビルドの処理内容に依存しますが、わりとすぐに結果が返ってきます。</p><p>Jenkins なんかと比べると単純でできることも少ないですが、その分簡単ですし、普通に開発してテストして、という用途には十分なんじゃないでしょうか。</p></section><section><h1>.travis.yml の例</h1><pre class="yaml code">language: perl
perl:
  - &quot;5.14&quot;
  - &quot;5.10&quot;
before_install: git submodule update --init
install: &quot;make test-deps&quot;
script: &quot;make test&quot;
notifications:
  email:
    - foo@example.com
  irc:
    channels:
      - &quot;irc.example.com#foo&quot;
    use_notice: true</pre><p>こんな感じのファイルをリポジトリに置いておきます。<del>みんな大好き Perl 5.8 は残念ながら用意されていませんでした...</del></p></section><section><h1>追記 (2014年1月)</h1><p>いつからか、</p><pre class="perl code">language: perl</pre><p>... のように言語を明記しないと言語ごとのバリエーションが認識されなくなったようです。</p><p>現在は Perl 5.8 も追加されています。</p></section></section><section><h1>環境変数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Travis CI</anchor>
で実行中は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>の
<dfn><code>TRAVIS</code></dfn>
や
<code>CI</code>
が設定されます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">CI</code> はいろいろな <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CI</anchor> サービスで使われています。</comment-p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://about.travis-ci.org/docs/user/ci-environment/#Environment-variables">https://about.travis-ci.org/docs/user/ci-environment/#Environment-variables</anchor-external></li></ul></refs></section><section><h1>実行完了後の処理を指定する</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> after_success は、複数の job が実行されるとき、そのそれぞれで実行される。
すべての job が成功した時だけ実行する方法は公式には用意されておらず、要望はあるが長期間放置されている <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> もう何年も経っているので、なおす気がなさそう。。。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> Travis の API を使って他の job の実行状況を監視し、すべて成功していたら最後に一度だけ実行するスクリプト <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src> が利用者により公開されている。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> しかし 1つのjob の実行時間上限を超えるほど他の job の実行完了まで時間がかかると、
エラーになってしまいます・・・。</comment-p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en">Single after_success callback after *all* builds · Issue #929 · travis-ci/travis-ci</cite> (<time>2015-10-08 19:52:34 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/travis-ci/travis-ci/issues/929">https://github.com/travis-ci/travis-ci/issues/929</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en">dmakhno/travis_after_all</cite> (<time>2015-10-08 19:54:53 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/dmakhno/travis_after_all">https://github.com/dmakhno/travis_after_all</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">after_success</anchor></code> が失敗しても、失敗したことが無視されて全体として成功扱いになります。
<time>2015-12-20T15:07:41.800Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="en">Build Stages - Travis CI</cite> (<time>2017-12-29 01:51:08 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.travis-ci.com/user/build-stages">https://docs.travis-ci.com/user/build-stages</anchor-external></p></section><section><h1>IRC over TLS で結果報告する</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en">IRC notifications over SSL and unstandard ports are undocumented · Issue #428 · travis-ci/docs-travis-ci-com</cite>
(<time>2015-12-14 18:49:30 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/travis-ci/docs-travis-ci-com/issues/428">https://github.com/travis-ci/docs-travis-ci-com/issues/428</anchor-external></p></section><section><h1>submodule を自動で update しない</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 今まで clone 時に submodule が自動的には init &amp; update されていませんでしたが、
2016年4月に突然仕様変更があったようで、無限に再帰的に取得されるようになりました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <code>.travis.yml</code> で<pre class="code">git:
  submodules: false</pre>... と指定するとこの動作を無効化できます。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <cite xml:lang="en">Common Build Problems - Travis CI</cite> (<time>2016-04-30 10:42:25 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.travis-ci.com/user/common-build-problems/#Git-Submodules-are-not-updated-correctly">https://docs.travis-ci.com/user/common-build-problems/#Git-Submodules-are-not-updated-correctly</anchor-external></li></ul></refs></section><section><h1>Mac OS X</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mac OS X</anchor> でのテスト実行はなぜか非常に待たされることがあります。
(実行環境が足りてないのでしょうか。)</p></section><section><h1>ブランチでビルド成功したら自動的にマージしたい</h1><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <cite xml:lang="en">travis-merger-api.pl · <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GitHub</anchor></cite>, <time>2022-09-11T03:05:01.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://gist.github.com/wakaba/9970857">https://gist.github.com/wakaba/9970857</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <cite xml:lang="en">travis-merge-job.pl · <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GitHub</anchor></cite>, <time>2022-09-11T03:04:54.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://gist.github.com/wakaba/ab553f86cd017e0cb28c6dbb5364b009">https://gist.github.com/wakaba/ab553f86cd017e0cb28c6dbb5364b009</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;47</anchor-internal> オリジナルバージョン。 matrix の全部のテストが終わるのを待機して、最後にやる。
(build stage がなかった頃に使っていたもの。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;46</anchor-internal> build stage 対応版。全部のテストが終わったら実行される stage
で呼び出すもの。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">Travis CI: Welcome to Travis CI</cite>
( (<time>2012-04-07 13:05:23 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://about.travis-ci.org/">http://about.travis-ci.org/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite>Validate your .travis.yml file</cite>
( (<time>2014-05-12 09:59:10 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lint.travis-ci.org/">http://lint.travis-ci.org/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite>Travis CI 使ってみた - 若葉もすなる☆日記というもの</cite>
( (<time>2013-08-09 03:44:52 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/wakabatan/20120408/1333878824">http://d.hatena.ne.jp/wakabatan/20120408/1333878824</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> 価格 <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://travis-ci.com/plans">https://travis-ci.com/plans</anchor-external></p><p>$129/月</p><p>デプロイ失敗後の処理をうまくやってくれない。失敗しても成功扱いになってしまう。
<time>2014-10-02</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> ビルド中止ボタンがついていますが、まともに動かないことが多いです。
何度も押してやっと止まるか、止まらないか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> ひどいときは中止完了で中止ボタンが出ないのに、なぜか実行中の表示のまま経過時間だけ無情に進み続けることもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <cite xml:lang="en">Build not starting on OS X · Issue #6841 · travis-ci/travis-ci</cite>
( (<time>2017-02-08 11:31:12 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/travis-ci/travis-ci/issues/6841">https://github.com/travis-ci/travis-ci/issues/6841</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">Customizing the Build - Travis CI</cite>
( (<time>2017-02-06 16:54:22 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.travis-ci.com/user/customizing-the-build#Build-Timeouts">https://docs.travis-ci.com/user/customizing-the-build#Build-Timeouts</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">Using Docker in Builds - Travis CI</cite>
(<time>2017-08-20 02:14:13 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.travis-ci.com/user/docker/">https://docs.travis-ci.com/user/docker/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite xml:lang="en">Build Environment Overview - Travis CI</cite>
(<time>2017-10-06 01:06:34 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.travis-ci.com/user/reference/overview/">https://docs.travis-ci.com/user/reference/overview/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en">Common Build Problems - Travis CI</cite>
(<time>2017-10-06 01:06:34 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.travis-ci.com/user/common-build-problems/">https://docs.travis-ci.com/user/common-build-problems/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">Build Stages and allow_failures do not work well together · Issue #7789 · travis-ci/travis-ci</cite>
(<time>2017-12-29 13:33:40 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/travis-ci/travis-ci/issues/7789">https://github.com/travis-ci/travis-ci/issues/7789</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> キャンセル機能相変わらずまともに動かないなあ。
ちゃんと止まってるのか怪しいし、 Build Stages みたいな新機能だと忘れられてるし。。。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite xml:lang="en">The Travis CI Blog: Announcing support for open source projects on travis-ci.com</cite>
(<time>2018-05-25 23:04:19 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://blog.travis-ci.com/2018-05-02-open-source-projects-on-travis-ci-com-with-github-apps">https://blog.travis-ci.com/2018-05-02-open-source-projects-on-travis-ci-com-with-github-apps</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> 
travis コマンドは ruby と gem が必要な上に docker 版も公式で存在しないとか舐めてる。
Travis CI というサービス自体が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Docker</anchor>
時代の前からあるから、
時代に追いつけてないんだろうなあ...</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> 
.org から .com に強制移転になって何かわけわからんくなったな。
<time>2021-06-19T03:12:57.700Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> 
移行が手動だしベータ機能扱いでベータを有効にしないと実行すらできないとか意味わからん、
なんでそんな状態で旧サービス廃止するんだよ。。。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> 
完全移行するには <code>gem</code> でなにかインストールしてどうのこうのしないと駄目だよとか言い始めたぞ...
意味不明すぎる。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> 
言われた通りに実行したら言われた画面がなくなってるが、
どうにかこうにか実行できたものの</p><blockquote><p>Sorry, we could not find any repositories to migrate.</p></blockquote><p>とか言われて草。真面目にやる気なさすぎだろwww</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> 
もしかして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Travis CI</anchor> 捨てて他社サービスに移行する方が楽なんじゃね?</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Travis CI</anchor>
も昔はいいサービスだったんだけどなー</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> 
昔は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OSS</anchor> は完全無料だったのに、 travis-ci.com に強制移行させられ、
無料枠の範囲内だけ無料にサービスダウンしました。
中規模以上で活発に開発している <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OSS</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">課金</anchor>しないと使いものになりません。
上限に達すると自動停止されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <cite>Travis CIのプラン改定 &amp; open-source planに申し込んでみた - Qiita</cite>, <time>2021-10-03T05:22:03.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/TomoyukiAota/items/42987f1d20f06abb3b3c">https://qiita.com/TomoyukiAota/items/42987f1d20f06abb3b3c</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Travis CI</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OSS</anchor> 向け無料提供は事実上終了した模様。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> 
こうなるともう他の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CI</anchor> サービスではなく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Travis CI</anchor> を選ぶ理由ってないような?</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> 
機能的には後発のサービスの方が充実してるし、無料枠も今となっては後発サービスの方がずっと大きいからなあ。</p></section></body></html>