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

  1. Continuous Integration
  2. Jenkins
  3. Travis CI
  4. Codeship
  5. 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

  1. Jenkins
  2. Travis CI
  3. Codeship
  4. CircleCI
  5. TeamCity
  6. wercker
  7. Drone.io
  8. Semaphore
  9. Shippable
  10. 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

  • 1,005