-
Notifications
You must be signed in to change notification settings - Fork 10
CI CD
- κ°λ°μκ° κ°κ° κ°λ°ν μμ€μ½λλ₯Ό λͺ¨μμ νκΊΌλ²μ λΉλνλ ν΅ν© λΉλμ κ³Όμ μ νΉμ μμ μ΄ μλλΌ μ£ΌκΈ°μ μΌλ‘ μνν¨μΌλ‘μ¨ ν΅ν©μμ λ°μνλ μ€λ₯λ₯Ό μ¬μ μ ν΄κ²°νκ³ μ΄λ° κ³Όμ λ€μ μμλλ μκ°μ μ€μ΄κΈ° μν κΈ°λ²
- 보ν 첨μ : λ©€λ²μ κ³Όμ μ€ μλ λ°°ν¬ μμμΌλ‘ 보μ, κ±°κΈ°μ ν μ€νΈ λ±λ λν κ²
- μμ€μ½λλ₯Ό λ°μ΄λ리 νμΌλ‘ μ»΄νμΌ νλ€.
- λ°μ΄λ리 νμΌμ λ°°ν¬ ννλ‘ ν¨ν€μ§ νλ€.
- λ¨μ ν μ€νΈλ₯Ό μννλ€.
- μ μ λΆμμ μννλ€.
- λΆμ κ²°κ³Όλ₯Ό 리ν¬ν νλ€.
- ν¨ν€μ§ν νμΌμ ν μ€νΈ μλ²μ λ°°ν¬νλ€.
- featureνλ μμ±, develop branchμ push
- fetch ν
- mergeκ° λλ€κ³ κ°μ ν ν npm i, npm build, npm start
- μ€λ₯ μμΌλ©΄ merge μν
- μΆ©λ μμ λ±μ μ΄λ»κ²?
- netlifyμμ mergeλ μμ€λ₯Ό κ°μ§κ³ μ κ³Όμ νλ² λ°λ³΅ν λ€ λ°°ν¬ μ μ©.
-
무λ£. jenkinsμ λ€λ₯΄κ² μλ²κ° λ°λ‘ νμμλ€.
- private projectμμ μ¬μ©ν λ λΉμ©μ΄ νμ
- TravisμΈ‘μμ μλ²λ₯Ό κ΄λ¦¬νκΈ° λλ¬Έμ μλ²κ΄λ¦¬κ° λ³λλ‘ νμ μμ
-
cloudνκ²½μμ μ€νλκΈ° λλ¬Έμ μ¬λ¬ νκ²½μμ νλ‘μ νΈλ₯Ό ν μ€νΈνκΈ°μ μ’λ€. device, os λ±
-
Dockerμ μ¬λ¬ μΈμ΄λ€μ μ§μνμ§λ§ Jenkinsμ λΉκ΅νλ©΄ customization μ΅μ μ΄ μ λ€. (μ΄λ€ customizationμΈμ§μ λν μΈκΈμ λ³Έλ¬Έμ μμ)
-
jenkinsμ λΉκ΅ ν΄μ κΈ°λ₯λ λ μ λ€. (μ΄λ€ κΈ°λ₯μΈμ§ λͺ μ μμ)
-
configureκ° ν¨μ¬ μ½λ€.
-
build matrix λΌλ κΈ°λ₯μ΄ μλ€. test processλ₯Ό μ¬λ¬ ννΈλ‘ λλ μ μ€ννκ² μ€μ ν μ μλ κ². μλ₯Όλ€μ΄μ, unit testμ integration testλ₯Ό λλ μ μνν΄μ build capacityλ₯Ό μ¨μ ν νμ©ν μ μμ
- λ, λ€μν λ²μ μ νκ²½μμ testκ°μ λ΄μ©μ λͺ μμ μΌλ‘ λͺ λ Ήν μ μλ λ―
language: python jobs: include: - python: "2.7" env: TEST_SUITE=suite_2_7 - python: "3.3" env: TEST_SUITE=suite_3_3 - python: "pypy" env: TEST_SUITE=suite_pypy script: ./test.py $TEST_SUITE
-
κ²°λ‘ : travis
- reactλ₯Ό μ¬μ©ν κ²μ΄λ―λ‘, webpackλ±μ μ΄μ©ν΄μ buildλ₯Ό ν κ²μΈλ°, build μ€λ₯ λ§κ³ λ UI λ° μ¬μ©μ λͺ
λ Ή, κ²μ λ‘μ§ λ± testκ° μμ΄λ μ’μλ― νλ€.
- μ΄λ₯Όν λ©΄, λ°©ν₯ν€λ₯Ό λλ¬μ canvasλ΄μμ μΊλ¦ν° μ΄λ
- urlλ‘ μ μνμ λ, socketμ°κ²°μ΄ λλμ§ λ±
$ curl -X POST -H 'Content-type: application/json' --data '{"text":"integration Complete"}' https://hooks.slack.com/services/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
- CI / CD μλ£ ν λ‘κ·Έλ₯Ό μ¬λ μ±λμ μλ €μ£Όλ©΄ μ’μλ― (μλ¬ λ‘κ·Έ λ±)
- λ―Έμ μ€ μμμ§λ§.. travis CI toolμ μ΅νλ κ²μ΄ λ λΉ λ₯΄κ³ , λ λ§μ κΈ°λ₯μ μ΄μ©ν μ μμ κ²μ΄λ€.
- νμ΅μ κ΄ν λ©΄μ?
- DevOpsλ₯Ό μ§μνκ³ μΆμΌλ©΄ ꡬνν΄λ³Όλ§ ν λ―νλ€.
- herokuλ netlifyλ±μ μ΄μ©ν΄μ λ°°ν¬ν μ μμ κ² κ°λ€.
- μ€λ₯ μμ΄ mergeλμ λλΌλ©΄ netlifyκ° CDλ₯Ό μνν΄μ£Όλ κ² κ°μ
- test
- https ν΅μ
- CI / CD μλ μκΈ°λ? (λΈλμΉ κΈ°μ€)
- (κ°λ )https://asfirstalways.tistory.com/303
- (κ°λ
)http://woowabros.github.io/experience/2018/06/26/bros-cicd.html
- μ°μν νμ λ€
- jenkins
- slack bot
- (κ°λ )https://gompangs.tistory.com/entry/GIT-CIcontinuous-Integration%EB%9E%80-travis-%EC%82%AC%EC%9A%A9%EB%B2%95
- (ν μ€νΈ)http://www.nextree.co.kr/p10799/
-
https://aws.amazon.com/ko/devops/continuous-integration/
- AWS pipeline
-
https://12bme.tistory.com/151
- λͺ¨λ² μ¬λ‘
- μ°Έκ³ : for-beginners
-
buildλ₯Ό μ€ννλ©΄, Travisλ μλ‘μ΄ κ°μ νκ²½μ repositoryλ₯Ό 볡μ¬ν΄ buildμ test μΌλ ¨μ κ³Όμ μ κ±°μΉλ€. κ³Όμ μ€ νλλΌλ μ€ν¨νλ©΄ broken, failμ΄ μμΌλ©΄ passed.
-
μμ£Ό μ°μ΄λ μ©μ΄λ€
- phase :
install
phase,script
phase,deploy
phase λ±job
μ μμλλ‘μ stepμ μλ―Έ - job: repoλ₯Ό cloneνκ³ μ¬λ¬ phaseλ₯Ό κ±°μΉλ λ± μλνλ process.
script
phaseμμ returnμ΄ zeroκ° μλλ©΄ μ€ν¨νλ€. - build: a group of jobs. μλ₯Όλ€μ΄μ ν buildλ λ κ°μ jobμΌλ‘ ꡬμ±λ μ μλ€. jobμ κ°κΈ° λ€λ₯Έ λ²μ μ μΈμ΄λ‘ μ€νλλ κ². λ jobμ΄ λͺ¨λ μ±κ³΅νλ©΄ buildκ° μλ£λλ€.
- stage: ?, a group of jobs that run in parallel as part of a sequential build process composed of multiple stages.
- phase :
-
Build μ€ν¨
- errored :
before_install
,install
,before_script
phase μμ non-zero exit codeκ° λ°νλλ©΄ jobμ λ°λ‘ λ©μΆλ€. - failed :
script
phaseμμ non-zero exit codeκ° λ°νλλ©΄ λ°μ. jobμ μλ£μ κΉμ§ μ€νλλ€.(?) - canceled : userκ° μλ£ μ μ jobμ λ©μΆ€
- errored :
-
infrastructure and environment notes
- linux
- macOS
- windows
language: node_js
notifications:
webhooks:
- https://hooks.slack.com/services/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
on_success: change # default: always
on_failure: always # default: always
on_start: change # default: never
on_cancel: always # default: always
on_error: always # default: always
cache:
directories:
- node_modules
script:
- npm run build
- npm test
-
travis.comμ μ μν΄μΌν¨ (travis.orgλ μμ μ£Όμ)
-
badgeλ₯Ό λ¬ μ μμ
- μμ κ°μ λ²νΌμ λλ¬ μ 곡νλ λ§ν¬λ₯Ό μ΄μ©νλ©΄ λ¨.
-
μ°Έκ³