Play with
CI Tools
QuesCheetah 김명주
원래 해보고 싶었던 것
https://app.pluralsight.com/library/courses/integrating-docker-with-devops-automated-workflows/table-of-contents
원래 해보고 싶었던 것
https://app.pluralsight.com/library/courses/integrating-docker-with-devops-automated-workflows/table-of-contents
삽질의 흔적...ㅠㅠ
삽질의 흔적...ㅠㅠ
토요일 밤 12시에 해결
Index
- Continuous Integration
- Jenkins
- Travis CI
- Codeship
- CircleCI
1. Continuous Integration
정의 / 목적
지속적으로 퀄리티 컨트롤(품질 관리) 을 적용하는 프로세스를 실행하는 것
모든 개발을 완료한 뒤에 모든걸 merge하는 고전적인 방법을 대체하는 방법
소프트웨어의 질적 향상 + 배포 시간을 줄이는데 초점이 맞춰져 있음
https://ko.wikipedia.org/wiki/%EC%A7%80%EC%86%8D%EC%A0%81%EC%9D%B8_%ED%86%B5%ED%95%A9
Git
Bitbucket
commit
Travis CI
Jenkins
https://insights.sei.cmu.edu/
1. Continuous Integration
1. Continuous Integration
신규 또는 수정된 코드가
결함이 있는지
지속적으로 검증
1. Continuous Integration
2016-02-28 현재
http://stackshare.io/continuous-integration
1. Continuous Integration
- Jenkins
- Travis CI
- Codeship
- CircleCI
- TeamCity
- wercker
- Drone.io
- Semaphore
- Shippable
- Go.CD
.
.
.
1. Continuous Integration
2. Jenkins
- Built with Java
- Provides over 300 plugins
- Hosted internally
- Open source and tons of integrations
- JUnit/TestNG test reporting
- Distributed builds
- File fingerprinting
- After-the-fact tagging
- RSS/E-mail/IM Integration
- Permanent links
MIT License
2. Jenkins
2. Jenkins
초보자 tutorial 부족
오래된 Interface
개발자가 직접 설정
개인적으론...
3. Travis CI
MIT License
- Github integration
- Easy to get started
- Nice interface
- Tutorials for each programming language
- Free for open source
- Support for multiple ruby versions
3. Travis CI
MIT License
- MySQL, PostgreSQL, ElasticSearch, Redis, Riak, RabbitMQ, Memcached are available by default
- deploy to Heroku, Engine Yard Cloud, Nodejitsu, cloudControl, OpenShift, and CloudFoundry
3. Travis CI
MIT License
language: python
python:
- "2.6"
- "2.7"
- "3.2"
- "3.3"
- "3.4"
- "3.5"
- "3.5-dev" # 3.5 development branch
- "nightly" # currently points to 3.6-dev
# command to install dependencies
install: "pip install -r requirements.txt"
# command to run tests
script: nosetests
.travis.yml
3. Travis CI
3. Travis CI
3. Travis CI
많은 유저수 -> 관련 자료 풍부
많은 종류의 언어(버전) + 머신 지원
언어 버전별로 테스트하기 좋다.
개인적으론...
4. Codeship
- Simple deployments
- Bitbucket, Github, Slack integration
- Easy ui
- 100 builds & 5 private projects free per month
- Free for OSS - (?)
- SSH debug access
- Docker support with additional price
- Fast builds with parallel testing
- Configure deployment pipelines
Not OSS
4. Codeship
4. Codeship
빌드 속도 가장 빠름
.yml 파일 필요 X -> WebUI 사용
Document 내용 부족
개인적으론...
5. CircleCI
- Without the pain of setup and maintenance
- Slack integration
- Docker support
- Ios support
- Competitively priced
- Awesome UI
- Deep Customization
- allow you to SSH into our machines to test manually
- Automatic Parallelization
Not OSS
5. CircleCI
Not OSS
machine:
python:
version: pypy-2.2.1
database:
override:
- mysql -u ubuntu circle_test < my-database-setup.sql
test:
override:
- php ./test-suite/run.php --unit-tests
circle.yml
5. CircleCI
5. CircleCI
5. CircleCI
5. CircleCI
개발자가 설정해야 하는 것 상대적으로 적음
도큐먼트 상세
단계별로 custom build setting 용이
개인적으론...
Reference
http://www.slideshare.net/DonghyunSeo3/ci-49635777
http://www.slideshare.net/mogproject/circleci-51253223
http://www.slideshare.net/sunnykwak90/ss-43685077
Thank you!
with
Q&A
ci-tools
By Ming Kim
ci-tools
- 993