Top Banner
CI for Python Project osakapy 2014.10.21 LT / Hideo Hattori
26

osakapy 2014.10 LT (CI for Python Project)

Jun 21, 2015

Download

Technology

Hattori Hideo

大阪Pythonユーザの集まり 2014/10
LT
CI for Python Project
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: osakapy 2014.10 LT (CI for Python Project)

CI for Python Project

osakapy 2014.10.21 LT / Hideo Hattori

Page 3: osakapy 2014.10 LT (CI for Python Project)

今日お話すること

CI

Travis CI + GitHub

drone.io + Bitbucket

Jenkins + Private Project

Page 4: osakapy 2014.10 LT (CI for Python Project)

CI

Page 5: osakapy 2014.10 LT (CI for Python Project)

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

Page 6: osakapy 2014.10 LT (CI for Python Project)

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

コードインスペクション

Page 7: osakapy 2014.10 LT (CI for Python Project)

テスト

unitest, unittest2, mock

nose, pytest

tox

coverage

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

Page 9: osakapy 2014.10 LT (CI for Python Project)

GitHub + Travis CI

Page 10: osakapy 2014.10 LT (CI for Python Project)
Page 11: osakapy 2014.10 LT (CI for Python Project)

Travis CI基本無料

Push / Pull-Req

Notification

Page 12: osakapy 2014.10 LT (CI for Python Project)

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

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

通知の設定も .travis.yml で

ドキュメント

Page 13: osakapy 2014.10 LT (CI for Python Project)

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

.travis.yml for otamapy

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

COVERALLS 連携

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

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

Page 14: osakapy 2014.10 LT (CI for Python Project)

Bitbucket + drone.io

Page 15: osakapy 2014.10 LT (CI for Python Project)
Page 16: osakapy 2014.10 LT (CI for Python Project)

drone.io基本無料

Push / (Pull-Req Support?)

Notification (メールのみ)

GitHubとも連携できるよ

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

ドキュメント

Page 17: osakapy 2014.10 LT (CI for Python Project)

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

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

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

Page 18: osakapy 2014.10 LT (CI for Python Project)

Jenkins + Private Project

Page 19: osakapy 2014.10 LT (CI for Python Project)
Page 20: osakapy 2014.10 LT (CI for Python Project)

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

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

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

プラグイン豊富

設定の柔軟性

Page 21: osakapy 2014.10 LT (CI for Python Project)

Jenkins使った実例Jenkins for genzshcomp

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

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

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

Page 22: osakapy 2014.10 LT (CI for Python Project)

その他

Page 24: osakapy 2014.10 LT (CI for Python Project)

まとめ

Page 25: osakapy 2014.10 LT (CI for Python Project)

まとめ

Travis CI と Jenkins が柔軟でよい

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

Page 26: osakapy 2014.10 LT (CI for Python Project)

ありがとうございました