はじめに
だんないよ、nikkieです。
手動テスト中心の社風に辟易しているので、
CI入れたら業務楽になるのかなと「Circle CI 入門」に話聞きにいってきました。
勉強会の概要
イベント概要
最近CI環境をとりいれている企業も増えてきていると思います。
GitHub / BitBucketのPUSHに反応して、色々出来るやつです。
TravisCI,Jenkins,CircleCI・・・などたくさんあるCIサービスの中から今回は
CircleCIを重点的にお話します。
こんな方にオススメ
CIをやってみたいけど、やったことない方
テストコードやったことないけどやってみたい方
そもそもCIって何おいしいのって方
資料
CIとは?
- 「継続的インテグレーション」
- 品質改善や納期短縮のための習慣
- XPのプラクティスの一つ
XP
- 「エクストリーム・プログラミング」
- 柔軟性の高い開発手法
- アジャイルの基礎
- CIの他に、テスト駆動開発、ペアプロ、YAGNIなど
Circle CIとは
サンプルコード解説
- CircleCI設定ファイル:.circleci/config.yml
- jobの中で行うコマンドを書いていく
例:ソースコード取得→Dockerコンテナ立てる
→DB用意する→テスト実行→結果を表示
他のCIツール
- Jenkins CIのデファクトスタンダードと言えそう。
インストールして使う。最近はSaaS版も出た - TravisCI
プライペートリポジトリ版が有料(割高)
OSSで使われていることが多い(設定ファイル参考にできる)
CI構築するときに考えること
- CIツールはなんでもできるので、どのくらいで始めるかが重要
- 目的・どういうことをやるかを考える(lintにとどめるのか、単体テストまでやるのか)
- バージョン管理システムによってどのCIツールを使うかが決まってくる
- CIを動かす粒度を考える
- CIを設定するコストメリットを考える
テストが書かれていないコードにCIを導入するのは大変
一番簡単なのはlinterを入れること。
次のステップが単体テストのコードを書いて導入。テストを書いたことがないならテストを書くのに慣れることを目指す。
CircleCIまとめ
感想
PythonではDjangoとFlaskのサンプルが公式ドキュメントに用意されているので
触ってどんなものなのかを体験しないといけないですね。(分かった気で終わらせてはいけない)
Language Guide: Python - CircleCI
CircleCIにはDockerの知識がどの程度いるのか気になります。(つかむためにも触らないと)
講師の木村さんは2017年末にDocker勉強会の講師もされていたので、
Docker使えるとエンジニアとしてできることが違うんだろうなと感じさせます。
私、Dockerが使えるエンジニアになりたい。
CIのC(継続的)はわかるけどI(インテグレーション)ってなんだってところが実はスタートでした。
予習につまみ食いした『チーム開発実践入門』でおぼろげながらつかめました。
(読まないでいったらちんぷんかんぷんだったかも。。)
https://www.amazon.co.jp/dp/4774164283
講師の木村さん、そして運営・出席者の皆さま、
貴重なお話とそれを聞く機会をありがとうございました。