cropse

Circleci範例紀錄 2017- 2-20


這裡記錄使用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)

Tag: CI/CD selenium testcase deploy