這裡記錄使用Django_blog 在github每次push時使用circleci跑一次測試,circleci只使用一個專案不用錢(測試時間還是有限制)
基本上只要用circleci連結到你github的專案,專案有circle.yml就會在每次push時自動跑一次測試
circle.yml
dependencies:
override:
- sudo apt-get install python3 build-essential python3-dev python3-setuptools python3-pip -y
- pyenv global 3.6.0
- pip3 install -r $HOME/Django_Blog/requirement_ci.txt
# install geckodriver
- wget https://github.com/mozilla/geckodriver/releases/download/v0.14.0/geckodriver-v0.14.0-linux64.tar.gz
- tar zxf geckodriver-v0.14.0-linux64.tar.gz
- chmod 755 geckodriver
- sudo cp geckodriver /usr/local/bin/
test:
override:
- python3 $HOME/Django_Blog/src/manage.py test posts
- python3 $HOME/Django_Blog/src/manage.py test pages
這裡注意到幾點
- selenium的geckodriver問題,所以寫起來有點長
- Django test 需要指定app 測試,不然不會跑
- python3有很多版本,所以需要
pyenv global 3.6.0
做指定
- 可以rebuild with SSH, 跑完最後會有一組ssh讓你連進去debug
- 連進去在$HOME 的路徑下,所以寫config記得加該路徑
- requirement另外寫一個,因為deploy不用selenium,測試端也不用uwsgi或是nginx
Docker版本的之後再寫,先把docker-compose寫完再說
Reference link
Docs
山姆大的教學
DevOps:持續整合&持續交付(Docker、CircleCI、AWS)