主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Travis CIがビルド環境にDockerを使えるようにしたみたいで

                
tags: TravisCI
 Travis CIに投げたテストがいつ終わるかと開いた画面を見ていたら上のほうに「スピードがほしいか?」というニュアンスのリンクが出てきた。リンクを開いてみたらTravis CIがDocker対応とかしたから使ったらスピードアップが見込めるぞと。
http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/

 どうやってテストをDockerで行うようにする?.travis.yamlに"sudo: false"を追記する。これの制限としてsudoコマンドが使えなくなる。sudoを使ってUbuntuパッケージをインストールしたい場合、そうせずに自分のプロジェクト内にコンパイル済みのバイナリを配置しろと書いてある。

 実際にやってみる。まずはPhantomJSでテストを行っていたjsファイルのテストを。.travis.yamlは'script: phantomjs test.js'としか書いていなかったのでこれに'sudo: false'を追記。
sudo: false

script: phantomjs test.js

.travis.yamlを編集したらGithubへプッシュする。GithubとTravis CIを連携しているので自動でTravis CIでのテストが始まる。
 いつもはプッシュしてからそのプロジェクトのTravis CIでのページを開くとまだログになにも表示されていないことがあったが、あらかじめページを開いて待っていたところプッシュ完了から5秒程度で始まっていた。

 Docker使用以前まではログの冒頭が下記のものだった。
Using worker: worker-linux-4-2.bb.travis-ci.org:travis-linux-20
system_info
Build system information
Build language: ruby
git.checkout
0.09s$ git clone --depth=50 --branch=master git://github.com/hMatoba/JavaScript-MinifyJpegAsync.git


 Dockerを使用するとそのこととsudoコマンドが使えなくなることが冒頭に明示された。
Using worker: worker-linux-docker-4e6a0461.prod.travis-ci.org:travis-linux-3
・・・・・・略・・・・・・
This job is running on container-based infrastructure, which does not allow use of 'sudo', setuid and setguid executables.
See http://docs.travis-ci.com/user/workers/container-based-infrastructure/ for details.


 テストの実行時間は回数を重ねていないのでなんともいえないが、Docker以前が6秒程度だったものが導入直後は9秒になった。・・・このJSとは別にPythonでもTravis CIを使っているのがあるのでDockerに変更して試したところ、トータルで3分強だったテストがプラス10秒ほどになった。・・・今回はビルド自体が速くなるという効果は確認できなかった。
https://travis-ci.org/hMatoba/Piexif/jobs/45200728

 その他キャッシュ使えるようにしたり、ユーザの用意したDockerへの対応はまだだけど考えているという状況。とりあえず今回実際に試してみて言えるのは、スピードアップの期待はほどほどにというところ。
スポンサーサイト
プロフィール

Matoba

Author:Matoba

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。