PPP3: Circle CI
Chapter 10 Circle CIで継続的インテグレーション
継続的インテグレーション(Continuous Integration: CI)とは、プログラムを修正するたびにビルドやテストを実行し結果を確認することを自動化する取り組みです。CIは、開発プロセス上の人的不注意によるミスや繰り返し作業によるミスなどのリスクを大きく減らします。
Circle CIを使う
Sign upするともういきなり自分のリポジトリの一覧が見えている
ここでAdd Projectの説明が出てくるけど、なにかリポジトリを指定しないといけない
リポジトリはある前提ってことになってるけど
あとでサンプルコードが出てくるからそれをpushしてからやるのがいいかな?
calculations.py
def divide(num1, num2):
return num1 / num2
test_calculations.py
import unittest
import calculations
class CalculationsTest(unittest.TestCase):
def test_divide_normal(self):
self.assertEqual(calculations.divide(2, 2), 1)
def test_divide_contain_zero(self):
self.assertEqual(calculations.divide(0, 1), 1)
if __name__ == "__main__":
unittest.main()
.circleci/config.yml はいったんhello world版で
version: 2.1
jobs:
build:
docker:
- image: circleci/python:3.6入力してみた
steps:
- run: echo 'hello world'
これをいったんgithubに置いてAdd Project
リポジトリを指定してSet Up Projectすると
プロジェクト追加詳細画面が出てOperating SystemとかLanguageとか
設定するはずなんだけど出てこない
気にせず進む
Start buildingをクリックすると何やら動いてSucceed
hello worldが表示されないけど適当にちょんちょんクリックしてたら発見できた
では本番
...
steps:
- checkout
- run: python test_calculations.py
これをpush
何もしなくてもテストが失敗してた
Start building押さなきゃいけないのは最初だけなんだな
失敗は想定通り
ソースを修正してpush
def test_divide_contain_zero(self):
self.assertEqual(calculations.divide(0, 1), 0)
成功