osakapy 2014.10 lt (ci for python project)

Post on 21-Jun-2015

280 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

大阪Pythonユーザの集まり 2014/10 LT CI for Python Project

TRANSCRIPT

CI for Python Project

osakapy 2014.10.21 LT / Hideo Hattori

今日お話すること

CI

Travis CI + GitHub

drone.io + Bitbucket

Jenkins + Private Project

CI

CIとはビルドやテスト、インスペクションなどを継続的に実行していくこと (Wikipediaより)

PythonプロジェクトでのCIテスト

コードインスペクション

テスト

unitest, unittest2, mock

nose, pytest

tox

coverage

python setup.py build が通ることを保証するだけでも有効

GitHub + Travis CI

Travis CI基本無料

Push / Pull-Req

Notification

Travis CIlanguage: pythonpython: - "2.6"script: - python test/test_autopep8.py

リポジトリに設定ファイルである .travis.yml を配置

通知の設定も .travis.yml で

ドキュメント

Travis CI使った実例.travis.yml for autopep8

.travis.yml for otamapy

nosetest or 普通にテスト実行とか

COVERALLS 連携

C拡張も必要なライブラリを事前にインストールできる

結構自由になんでもできる

Bitbucket + drone.io

drone.io基本無料

Push / (Pull-Req Support?)

Notification (メールのみ)

GitHubとも連携できるよ

単独のPythonバージョンとコマンド実行のみをサポート(toxを使えば大丈夫)

ドキュメント

drone.io使った実例toxを使用pip install --upgrade tox

Python2.7とPython3.3でテストtox -e py27 -e py33

Python3.4はサポートしていない (2014.10時点)

Jenkins + Private Project

JenkinsオープンソースのCIサーバ

Push / Pull-Req / Cron-like ...

自分でホストしないとダメ

プラグイン豊富

設定の柔軟性

Jenkins使った実例Jenkins for genzshcomp

プロジェクト初期から pyflakes や pep8 を使ったコードインスペクションを実施

その後テスト書いてカバレッジをあげていく

通知も柔軟 Chatworkと連携したり

その他

まとめ

まとめ

Travis CI と Jenkins が柔軟でよい

GitHubでホストするならTravis CI安定

ありがとうございました

top related