본문 바로가기

app/python

TRAVIS 연동 (python)


그 유명한 travis ci 를 이제서야 써봤습니다. (요즘 CI에 관심이 많습니다.)


뭐 대부분이 젠킨스를 쓰고 계시겟지만 젠킨스의 단점은 서버가 필요하고 설치를 해야 하는것이죠. (물론 설치가 쉽습니다.)


travis ci 는 github 와 연동하여 자동으로 테스트 할수 있는 서비스 입니다. (더 복잡한 처리도 가능합니다.)


travis는 상당히 많은 언어를 지원해 줍니다.  현재 공식으로 지원해주는 언어만


네. 그냥 다 된다고 보시면 됩니다.


해당 언어마다 테스트 하는 라이블러리는 당연히 다른데요.  지원하는 테스트 라이블러리는 아래와 같습니다. 


  • nose
  • py.test
  • mock
  • wheel



그러면 github 와 travis 연동입니다. 


1. 먼저 https://travis-ci.org/  에서 signup을 눌러 줍니다.



2.  github auth와 연동됩니다. 권한등에 대해서 설명해줍니다. authorize application 버튼을 눌러줍니다.




3. 해당 github에서 레파지토리 리스트를 가져옵니다. 원하는 프로젝트를 클릭하여 switch on 시켜 주면 해당 프로젝트와 연동 끝! (쉽죠?)



4. travis ci 예전 버전에서는 해당 프로젝트마다 settings에 들어가서  webhooks 를 설정해 줘야 되었지만 이젠 자동으로 연계됩니다. 

(젠킨스는 연동하려면 서버 키를 등록시켜 줘야 하지만 github에서 travis 를 잘 연계시켜 줍니다. )



5. 이제 프로젝트에서 travis를 연동시킬 파일이 필요합니다. 

프로젝트에 새파일로 .travis.yml 이름으로 파일을 만듭니다.

그리고 아래와 같이 넣어줍니다. 


language: python
python:
- "3.5"

install:
- pip install pymysql

# command to run tests
script:
- py.test

저의 경우 파이썬 3.5버전.

mysql을 사용해서 pymysql모듈을 설치

테스트는 pytest 를  사용으로 명시한것입니다. 


혹시 프로젝트에 따로 설치 해야 하는 모듈이 있다면 

https://docs.travis-ci.com/user/ci-environment/

여기를 참고하세요.



6. 5번과 같이 한 다음 해당 프로젝트를 github에 푸시 하면 자동으로 웹훅이 발동하여 travis에서 빌드를 시작합니다!!! 오!!!!


7. 이제부턴 필요한 테스트 모듈을 넣어줘서 자동으로 테스트 하게끔 만들어 주면 됩니다. 참 쉽죠?!



- 흠...역시 서버가 도커로 되어 있군요. 빌드 할때마다 도커 인스턴스가 생성되는것을 볼수 있습니다. (오픈 소스이니 자체 서버에 설치해서 도커로 연습할수 도 있겠군요. ㅎ)


Using worker: worker-linux-docker-64e8129c.prod.travis-ci.org:travis-linux-2


- travis 의 자세한 api는 아래를 참조하세요!

https://docs.travis-ci.com/user/trusty-ci-environment/