CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ“แƒฆแƒ”แƒกแƒ“แƒฆแƒ”แƒแƒ‘แƒ˜แƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒ’แƒฃแƒœแƒ“แƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ˜แƒก:

  1. แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก
  2. แƒ”แƒก แƒแƒ  แƒแƒ แƒฆแƒ•แƒ”แƒ•แƒก แƒแƒ แƒแƒคแƒ”แƒ แƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒแƒšแƒ”แƒ’แƒ”แƒ‘แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒ™แƒแƒ“แƒก.

แƒ—แƒฃ แƒแƒ แƒ˜แƒ•แƒ” แƒžแƒ˜แƒ แƒแƒ‘แƒ แƒ“แƒแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ–แƒแƒ–แƒ” แƒ“แƒ’แƒแƒฎแƒแƒ แƒ—. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ“แƒ แƒแƒ  แƒ’แƒแƒ“แƒแƒ•แƒฃแƒฎแƒ•แƒ˜แƒแƒ— แƒ›แƒแƒ›แƒ’แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒ’แƒ–แƒ˜แƒ“แƒแƒœ, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ— Continuous Integration.

CI แƒแƒ แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜, แƒกแƒแƒ“แƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ“แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“. แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ“แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ, แƒฆแƒ˜แƒ แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒ–แƒ” แƒคแƒ˜แƒฅแƒ แƒ˜. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒ แƒแƒ˜ แƒ แƒแƒขแƒแƒ›.

  • แƒซแƒ•แƒ˜แƒ แƒคแƒแƒกแƒ แƒฎแƒแƒšแƒฎแƒ. แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒแƒ—แƒ˜ แƒฃแƒคแƒ แƒ แƒซแƒ•แƒ˜แƒ แƒ˜แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒแƒ—แƒ˜.
  • แƒฎแƒแƒšแƒฎแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก แƒฃแƒจแƒ•แƒ”แƒ‘แƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒจแƒ•แƒแƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒฉแƒแƒขแƒแƒ แƒ“แƒ แƒแƒ แƒแƒกแƒฌแƒแƒ  แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ–แƒ” แƒแƒœ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒขแƒ”แƒกแƒขแƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  • แƒฎแƒแƒšแƒฎแƒ˜ แƒ–แƒแƒ แƒ›แƒแƒชแƒ˜. แƒ“แƒ แƒแƒ“แƒแƒ“แƒ แƒ, แƒ แƒแƒชแƒ แƒ“แƒแƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก, แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒแƒ–แƒ แƒ˜: โ€žแƒ แƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒšแƒ˜? แƒแƒ แƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” - แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก! แƒ›แƒ” แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘, แƒ แƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ’แƒแƒœแƒก แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒแƒฅแƒ•แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒแƒ–แƒ แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ—.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒ“แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ Avito-แƒก แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒœแƒ”แƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ 0-แƒ“แƒแƒœ 450-แƒ›แƒ“แƒ” แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒ“แƒฆแƒ”แƒจแƒ˜ แƒ“แƒ แƒ แƒแƒ› แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜ แƒแƒฌแƒงแƒแƒ‘แƒ”แƒœ แƒ“แƒฆแƒ”แƒจแƒ˜ 200 แƒกแƒแƒแƒ—แƒก, แƒแƒ›แƒ‘แƒแƒ‘แƒก แƒœแƒ˜แƒ™แƒแƒšแƒแƒ˜ แƒœแƒ”แƒกแƒขแƒ”แƒ แƒแƒ•แƒ˜ (แƒœแƒœแƒ”แƒกแƒขแƒ”แƒ แƒแƒ•แƒ˜) แƒแƒ แƒ˜แƒก CI/CD Android แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”.

แƒกแƒ˜แƒฃแƒŸแƒ”แƒขแƒ˜ แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Android แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ iOS-แƒ–แƒ”แƒช.


แƒ”แƒ แƒ—แƒฎแƒ”แƒš Avito Android-แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ. แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒก แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ’แƒแƒœ: แƒแƒ  แƒ˜แƒงแƒ แƒ•แƒ˜แƒœแƒ›แƒ”แƒกแƒ—แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ, แƒฃแƒคแƒ แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒ“แƒ แƒ’แƒฃแƒœแƒ“แƒ˜แƒช แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ. แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜, แƒ“แƒ แƒแƒ แƒฃแƒคแƒ แƒ แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜. แƒ’แƒแƒ“แƒแƒฌแƒงแƒ“แƒ Git flow-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

Git flow-แƒ˜แƒก แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜: แƒžแƒ แƒแƒ”แƒฅแƒขแƒก แƒแƒฅแƒ•แƒก แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜, แƒ“แƒ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒฌแƒงแƒ•แƒ”แƒขแƒ”แƒœ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒก, แƒ˜แƒฆแƒ”แƒ‘แƒ”แƒœ แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒแƒก, แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ›แƒแƒก แƒ“แƒ แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒฃแƒ แƒ— แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ—แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜, แƒฎแƒกแƒœแƒ˜แƒแƒœ แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ. แƒชแƒแƒ“แƒœแƒ˜แƒก แƒ’แƒแƒกแƒแƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒ˜แƒšแƒ•แƒ”แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ›แƒแƒ•แƒ˜แƒฆแƒ”แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ, แƒแƒœแƒฃ แƒ™แƒแƒšแƒ”แƒ’แƒ”แƒ‘แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒœ แƒ“แƒ แƒ“แƒแƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒแƒœ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ˜แƒก แƒ™แƒแƒ“แƒ˜.

แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก

แƒจแƒ”แƒœแƒ˜ แƒ—แƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒœแƒแƒฎแƒ•แƒ แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ˜แƒœแƒ”แƒ แƒ’แƒ”แƒ‘แƒ.

  • แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ— ARK แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ.
  • แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒฏแƒฃแƒœแƒ˜แƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜.
  • แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒคแƒแƒ แƒ•แƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒก.

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก แƒ”แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก Avito-แƒจแƒ˜.

แƒ˜แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒกแƒฅแƒ”แƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒแƒกแƒ”:

  • แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜ แƒฌแƒ”แƒ แƒก แƒ™แƒแƒ“แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒšแƒ”แƒžแƒขแƒแƒžแƒ–แƒ”. แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅ - แƒแƒœ commit hook-แƒ˜แƒ—, แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒฌแƒแƒ แƒ›แƒแƒแƒ— แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒคแƒแƒœแƒ–แƒ”.
  • แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ›แƒ แƒ“แƒแƒแƒฌแƒ”แƒกแƒ แƒ™แƒแƒ“แƒ˜, แƒ˜แƒก แƒฎแƒกแƒœแƒ˜แƒก pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ•แƒ˜แƒ“แƒ”แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜, แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒแƒ˜แƒแƒ แƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒแƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒขแƒฃแƒ แƒ˜. แƒแƒฅ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฉแƒแƒ แƒ—แƒแƒ— แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ build-แƒ”แƒ‘แƒ˜: แƒกแƒแƒœแƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ.
  • แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒ: แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฆแƒแƒ›แƒ˜แƒ—, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜แƒ แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ˜แƒ›แƒ“แƒ”แƒœแƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒช แƒ’แƒกแƒฃแƒ แƒ—.

แƒแƒ แƒแƒ•แƒ˜แƒก แƒฃแƒงแƒ•แƒแƒ แƒ“แƒ แƒšแƒ”แƒžแƒขแƒแƒžแƒ–แƒ” แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒ“แƒแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ›แƒแƒก แƒกแƒฃแƒ แƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒก แƒ˜แƒ’แƒ˜ แƒ“แƒ แƒ’แƒแƒฎแƒกแƒœแƒแƒก pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ. แƒ—แƒฃ แƒแƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ, แƒ”แƒก แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒแƒ, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒแƒœแƒ”แƒšแƒ”แƒ‘แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒก: แƒกแƒแƒœแƒแƒ› แƒšแƒ”แƒžแƒขแƒแƒžแƒ˜ แƒ แƒแƒฆแƒแƒชแƒแƒก แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก, แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒกแƒ–แƒ” แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ.

แƒฉแƒ•แƒ”แƒœ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ’แƒ•แƒฌแƒแƒœแƒ“แƒ แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒฆแƒแƒ›แƒ˜แƒ—, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ“แƒ แƒ แƒ“แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒแƒ แƒแƒ— แƒ’แƒแƒ แƒจแƒ”แƒ›แƒ. แƒ›แƒแƒ’แƒ แƒแƒ›, แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒขแƒ˜แƒ•แƒแƒชแƒ˜แƒ แƒแƒฅแƒ•แƒก CI แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—. แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒฃแƒšแƒแƒ“ แƒ•แƒ˜แƒญแƒ”แƒ แƒ“แƒ˜ แƒฉแƒ”แƒ›แƒก แƒ—แƒแƒ•แƒก แƒคแƒ˜แƒฅแƒ แƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ“แƒ˜ แƒ“แƒ˜แƒšแƒ˜แƒก แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ˜แƒš แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก, แƒ แƒแƒ› แƒ›แƒแƒ— แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ“แƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒฎแƒšแƒ แƒฏแƒ˜แƒ แƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒช แƒ›แƒ˜แƒœแƒ“แƒ.

แƒ—แƒฃ แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜ แƒ‘แƒšแƒแƒ™แƒแƒ•แƒก pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒ›แƒแƒขแƒ˜แƒ•แƒแƒชแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒแƒœแƒแƒ› builds แƒแƒ  แƒ’แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒ›แƒฌแƒ•แƒแƒœแƒ”, แƒ™แƒแƒ“แƒ˜ แƒแƒ  แƒจแƒ”แƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒกแƒขแƒ แƒแƒขแƒ”แƒ’แƒ˜แƒ: แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ  แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒก แƒฆแƒแƒ›แƒ˜แƒ— แƒ“แƒ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ›แƒแƒ—แƒ’แƒแƒœ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒก แƒ“แƒ, แƒ แƒแƒช แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ, แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒฌแƒ แƒแƒคแƒก, แƒแƒฌแƒ”แƒ•แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒแƒฅ แƒแƒ  แƒ•แƒฉแƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— - แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“, แƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฆแƒแƒ›แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ–แƒ”.

แƒ˜แƒ› แƒ“แƒ แƒแƒก, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฉแƒแƒ•แƒ แƒ—แƒ”แƒ— ARK build, Junit แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒคแƒแƒ แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ‘แƒšแƒแƒ™แƒ”แƒ แƒ˜ pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒฉแƒ•แƒ”แƒœ แƒฉแƒแƒ•แƒ แƒ—แƒ”แƒ—, แƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”แƒ— แƒ“แƒ แƒฃแƒแƒ แƒ˜ แƒ—แƒฅแƒ•แƒ˜แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒคแƒแƒ แƒ•แƒแƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ’แƒ•แƒ”แƒ’แƒแƒœแƒ, แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ.

แƒแƒ แƒ˜ แƒ“แƒฆแƒ” แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ CI-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒแƒ“ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก (แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ—แƒ˜, แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก).

แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒคแƒ˜แƒฅแƒ แƒ˜ - แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ— แƒ™แƒ˜ แƒกแƒฌแƒแƒ แƒแƒ“? แƒกแƒฌแƒแƒ แƒแƒ“ แƒ•แƒ›แƒแƒ แƒ—แƒแƒ•แƒ— แƒแƒฌแƒงแƒแƒ‘แƒ”แƒ‘แƒก pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก?

แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ˜แƒ› แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒก แƒ‘แƒแƒšแƒ commit-แƒ–แƒ”, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ’แƒแƒ˜แƒฎแƒกแƒœแƒ pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒฉแƒ•แƒ”แƒœแƒแƒก, แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ›แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒแƒ›แƒขแƒ™แƒ˜แƒชแƒ”แƒ‘แƒ”แƒœ, แƒ แƒแƒ› แƒ›แƒแƒœ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒแƒ แƒฆแƒ•แƒ˜แƒ. แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ แƒ›แƒแƒกแƒจแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ”แƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ bash แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ premerge.sh:

#!/usr/bin/env bash

set -e

git fetch origin develop

git merge origin/develop

แƒแƒฅ แƒงแƒ•แƒ”แƒšแƒ แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜แƒ แƒ“แƒ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ— premerge.sh แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒงแƒ•แƒ”แƒšแƒ build-แƒจแƒ˜ แƒ“แƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ, แƒ แƒแƒช แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒแƒœแƒฃ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ.

แƒกแƒแƒ›แƒ˜ แƒ“แƒฆแƒ” แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก, แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒžแƒแƒ•แƒœแƒแƒก แƒ“แƒ แƒแƒ› แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒก.

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ, แƒฃแƒคแƒ แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒฉแƒœแƒ“แƒ”แƒ‘แƒแƒ“แƒ, แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ แƒ“แƒ premerge.sh แƒฎแƒแƒœแƒ“แƒแƒฎแƒแƒœ แƒ’แƒ•แƒแƒฌแƒงแƒœแƒแƒ แƒ”แƒ‘แƒ“แƒ. Develop-แƒก แƒฐแƒฅแƒแƒœแƒ“แƒ แƒ™แƒแƒœแƒคแƒšแƒ˜แƒฅแƒขแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒแƒช แƒ“แƒแƒแƒ แƒฆแƒ•แƒ˜แƒ แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ แƒ”แƒก:

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒแƒ แƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก A แƒ“แƒ B แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ”. A แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ˜ แƒแƒฆแƒ›แƒแƒแƒฉแƒ”แƒœแƒก แƒ’แƒแƒ›แƒแƒฃแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜. answer() แƒ“แƒ แƒ™แƒแƒ แƒ’แƒ˜ แƒ‘แƒ˜แƒญแƒ˜แƒ•แƒ˜แƒ— แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ‘แƒก. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, B แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ˜ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒแƒฎแƒแƒš แƒ–แƒแƒ แƒก แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜.

แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒœ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒ“แƒ แƒฎแƒกแƒœแƒ˜แƒแƒœ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก. builds แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, premerge.sh แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒแƒ แƒ˜แƒ•แƒ” pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ - แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ›แƒฌแƒ•แƒแƒœแƒ”แƒ. แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ“แƒ”แƒ‘แƒ A แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ˜แƒก pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ, B แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ˜แƒก pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ... แƒ‘แƒฃแƒ›! แƒ’แƒแƒœแƒแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ— แƒจแƒ”แƒกแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ–แƒแƒ แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ”.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒก แƒแƒ  แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒก, แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ™แƒแƒขแƒแƒกแƒขแƒ แƒแƒคแƒ. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ•แƒ”แƒ แƒแƒคแƒ”แƒ แƒก แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก แƒ“แƒ แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“ แƒฌแƒแƒ แƒแƒ“แƒ’แƒ”แƒœแƒก.

แƒ˜แƒกแƒ” แƒ›แƒแƒฎแƒ“แƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒฃแƒš แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ–แƒ”: แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ, แƒฅแƒกแƒ”แƒšแƒ˜, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜. แƒแƒœแƒฃ แƒ›แƒ” แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒกแƒฎแƒ•แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ•แƒฎแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜. แƒชแƒแƒขแƒ แƒฎแƒแƒœแƒก แƒ”แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒช แƒ™แƒ˜ แƒ›แƒฅแƒแƒœแƒ“แƒ แƒฉแƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ”แƒก แƒแƒ  แƒ’แƒ•แƒ”แƒ แƒ’แƒ”แƒ‘แƒแƒ“แƒ, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒ˜แƒชแƒ˜แƒšแƒแƒ— แƒ”แƒก.

แƒ แƒแƒ’แƒแƒ  แƒแƒ  แƒ“แƒแƒแƒ แƒฆแƒ•แƒ˜แƒแƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒก

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒแƒฆแƒแƒ“แƒ’แƒ˜แƒœแƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ A แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ— pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜, B แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ˜แƒก pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฉแƒแƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ.

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒฎแƒแƒœแƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ›แƒแƒก, แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒแƒ แƒ˜ PR-แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒแƒ  PR-แƒก: แƒแƒ แƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ, แƒแƒ แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜. แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒ˜แƒแƒ แƒ˜ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒ“, แƒ›แƒ”แƒแƒ แƒ” แƒฃแƒœแƒ“แƒ แƒแƒฆแƒ“แƒ’แƒ”แƒก. แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒแƒ แƒ˜ PR แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ› แƒกแƒ”แƒ แƒ˜แƒแƒก: 2 + 1 = 3.

แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒ™แƒแƒ แƒ’แƒ˜แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒ”แƒ— แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒแƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒฃแƒ แƒ˜ แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ แƒ˜แƒงแƒ 10 แƒฆแƒ˜แƒ แƒžแƒ˜แƒแƒ แƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒ”แƒกแƒ˜แƒก แƒฏแƒแƒ›แƒ˜: 10 + 9 +... + 1 = 55. แƒแƒœแƒฃ, แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— 10. PR-แƒ”แƒ‘แƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒแƒ™แƒ”แƒ—แƒแƒ— 55-แƒฏแƒ”แƒ . แƒ“แƒ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ  แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒ แƒแƒ•แƒ˜แƒœ แƒฎแƒกแƒœแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก, แƒกแƒแƒœแƒแƒ› แƒ”แƒก แƒแƒ—แƒ”แƒฃแƒšแƒ˜ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ.

แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ—แƒแƒ•แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒญแƒ˜แƒ แƒแƒก แƒฆแƒ˜แƒšแƒแƒ™แƒก โ€žแƒจแƒ”แƒ แƒฌแƒงแƒ›แƒโ€œ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ—แƒฃ แƒ›แƒ”แƒ–แƒแƒ‘แƒ”แƒšแƒ˜ แƒแƒ›แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒšแƒแƒ“แƒ˜แƒœแƒ˜, แƒกแƒแƒœแƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒ‘แƒ˜แƒšแƒ“แƒ˜แƒœแƒ’แƒ˜ แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒ˜แƒ•แƒšแƒ˜แƒก... แƒแƒ แƒ, แƒ”แƒก แƒแƒ  แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก. , แƒ”แƒก แƒกแƒ”แƒ แƒ˜แƒแƒ–แƒฃแƒšแƒแƒ“ แƒจแƒ”แƒแƒœแƒ”แƒšแƒ”แƒ‘แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒก.

แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒ’แƒ–แƒ: แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒ”แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒแƒœแƒฃ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฎแƒกแƒœแƒ˜แƒ— pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก, แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒฌแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ™แƒแƒšแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ, แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ— แƒ˜แƒ›แƒแƒก, แƒ แƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— build-แƒ”แƒ‘แƒก. แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒ“. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒจแƒ”แƒœแƒ”แƒšแƒ“แƒ”แƒ‘แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒฎแƒกแƒœแƒ˜ pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก, แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ›แƒ˜แƒœแƒ“แƒ แƒ•แƒœแƒแƒฎแƒ, แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ—แƒฃ แƒแƒ แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒขแƒ”แƒกแƒขแƒ˜ แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ›แƒแƒแƒกแƒฌแƒแƒ แƒแƒ— แƒ˜แƒ’แƒ˜. แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฃแƒ™แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒแƒœแƒ”แƒšแƒ”แƒ‘แƒก แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ. แƒ”แƒก แƒแƒ แƒช แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ”แƒคแƒ”แƒ แƒ.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ“แƒแƒ แƒฉแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ - แƒ•แƒ”แƒšแƒแƒกแƒ˜แƒžแƒ”แƒ“แƒ˜. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜, แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒฌแƒงแƒแƒ แƒ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ Bitbucket แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ’แƒ•แƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒœแƒ แƒ›แƒแƒ“แƒฃแƒšแƒ˜ Bitbucket-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ”แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒคแƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒก. แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜แƒ: แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ PR, แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ, แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒก แƒ“แƒแƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒแƒก โ€žแƒจแƒ”แƒ แƒฌแƒงแƒ›แƒแƒ–แƒ”โ€œ, แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก, แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒš แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒ–แƒ” แƒ˜แƒงแƒ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜. แƒ—แƒฃ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ›แƒ”แƒœแƒขแƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ build-แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒแƒ  แƒ“แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒแƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜. แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒกแƒแƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒแƒกแƒ”แƒ—แƒ˜ แƒœแƒแƒ’แƒ”แƒ‘แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, B แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒก แƒ›แƒแƒฃแƒฌแƒ”แƒ•แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ, แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก.

แƒแƒ› แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒแƒ›แƒ“แƒ”, แƒฉแƒ•แƒ”แƒœ แƒกแƒแƒจแƒฃแƒแƒšแƒแƒ“ 2,7 แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก แƒ•แƒแƒ“แƒ’แƒ”แƒœแƒ“แƒ˜แƒ— แƒ—แƒ˜แƒ—แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—. แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒ— แƒ˜แƒงแƒ 3,6 แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ. แƒ”แƒก แƒจแƒ”แƒ’แƒ•แƒ”แƒคแƒ”แƒ แƒ.

แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ แƒแƒ› แƒแƒ› แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก แƒแƒฅแƒ•แƒก แƒœแƒแƒ™แƒšแƒ˜: แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก build-แƒก. แƒแƒœแƒฃ, แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜แƒก แƒžแƒแƒขแƒแƒ แƒ แƒคแƒแƒœแƒฏแƒแƒ แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—แƒแƒช แƒ™แƒแƒœแƒคแƒšแƒ˜แƒฅแƒขแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒ˜แƒก แƒแƒšแƒ‘แƒแƒ—แƒแƒ‘แƒ แƒ“แƒแƒ‘แƒแƒšแƒ˜แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ— แƒ”แƒก แƒ’แƒแƒ แƒ˜แƒ’แƒ”แƒ‘แƒ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒกแƒ แƒ“แƒ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒแƒšแƒ‘แƒแƒ—แƒแƒ‘แƒแƒก แƒจแƒแƒ แƒ˜แƒก. แƒแƒ  แƒฌแƒ”แƒšแƒ˜แƒฌแƒแƒ“แƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ’แƒแƒ˜แƒกแƒ แƒแƒšแƒ, แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒšแƒ‘แƒแƒ—, แƒฃแƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒแƒ  แƒงแƒแƒคแƒ˜แƒšแƒ.

Bitbucket แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ แƒแƒ แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ.

แƒแƒฎแƒแƒšแƒ˜ แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜

แƒแƒ›แƒแƒกแƒแƒ‘แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜ แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ“แƒ แƒ–แƒ แƒ“แƒแƒก. แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒฎแƒแƒšแƒ˜ แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ“แƒ˜แƒ—: แƒ แƒแƒขแƒแƒ› แƒ“แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜, แƒ—แƒฃ แƒ›แƒแƒ—แƒ˜ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ? แƒ“แƒ แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜. แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— lint-แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ“แƒ˜แƒก Android SDK-แƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒ› แƒ“แƒ แƒแƒก แƒ›แƒแƒœ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒ˜แƒชแƒแƒ“แƒ แƒ™แƒแƒขแƒšแƒ˜แƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ แƒ™แƒแƒขแƒšแƒ˜แƒœแƒจแƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก 75%. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ แƒ“แƒแƒ”แƒ›แƒแƒขแƒ lint Android Studio แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก.

แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ’แƒแƒ แƒงแƒ•แƒœแƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒฌแƒ˜แƒ: แƒแƒ•แƒ˜แƒฆแƒ”แƒ— Android Studio, แƒฉแƒแƒแƒšแƒแƒ’แƒ”แƒ— Docker-แƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— CI-แƒ–แƒ” แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒ—, แƒ˜แƒกแƒ” แƒ แƒแƒ› แƒ˜แƒคแƒ˜แƒฅแƒ แƒแƒก, แƒ แƒแƒ› แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒš แƒšแƒ”แƒžแƒขแƒแƒžแƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ.

แƒแƒกแƒ”แƒ•แƒ” แƒแƒ› แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒจแƒ˜ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒฌแƒ”แƒ แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒšแƒ˜ แƒ›แƒชแƒ˜แƒ แƒ” แƒฎแƒ”แƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒขแƒ”แƒกแƒขแƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ แƒฎแƒ”แƒ“แƒ˜แƒ“แƒแƒœ แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜แƒก แƒ’แƒแƒ“แƒแƒฆแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ—แƒแƒœ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒžแƒ˜แƒฅแƒกแƒ”แƒš-แƒžแƒ˜แƒฅแƒกแƒ”แƒšแƒ—แƒแƒœ. แƒ—แƒฃ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒจแƒ”แƒฃแƒกแƒแƒ‘แƒแƒ›แƒแƒ‘แƒ, แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒกแƒแƒ“แƒฆแƒแƒช แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜แƒ แƒแƒœ แƒ แƒแƒฆแƒแƒช แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜แƒ แƒกแƒขแƒ˜แƒšแƒจแƒ˜.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒฉแƒแƒขแƒแƒ แƒ“แƒ”แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ–แƒ”: แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ”แƒ‘แƒ–แƒ” แƒแƒœ แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ–แƒ”. แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ“แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒขแƒแƒ แƒ“แƒ”แƒ‘แƒ, แƒ›แƒ—แƒ”แƒšแƒ˜ แƒคแƒ”แƒ แƒ›แƒแƒ แƒกแƒแƒญแƒ˜แƒ แƒ. แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒคแƒ”แƒ แƒ›แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒจแƒ แƒแƒ›แƒแƒขแƒ”แƒ•แƒแƒ“แƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ•แƒ˜แƒžแƒแƒ•แƒ”แƒ— แƒ›แƒ–แƒ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ - Firebase Test Lab.

Firebase แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒšแƒแƒ‘แƒแƒ แƒแƒขแƒแƒ แƒ˜แƒ

แƒ˜แƒก แƒจแƒ”แƒ˜แƒ แƒฉแƒ แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› Firebase แƒแƒ แƒ˜แƒก Google-แƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜, แƒ แƒแƒช แƒ˜แƒ›แƒแƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ“แƒ แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ, แƒ แƒแƒ› แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ›แƒแƒ™แƒ•แƒ“แƒ”แƒก. แƒคแƒแƒกแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ˜แƒ•แƒ แƒฃแƒšแƒ˜แƒ: แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒกแƒแƒแƒ—แƒจแƒ˜ 5$, แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒกแƒแƒแƒ—แƒจแƒ˜ 1$.

Firebase แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒšแƒแƒ‘แƒแƒ แƒแƒขแƒแƒ แƒ˜แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒก CI-แƒจแƒ˜ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒแƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒ›แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒฃแƒœแƒ“แƒ˜ แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ“แƒ แƒ–แƒ แƒ“แƒแƒก แƒ“แƒ, แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, Firebase-แƒ›แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒ—แƒ แƒ’แƒฃแƒœแƒ•แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ. แƒ˜แƒ› แƒ“แƒ แƒแƒก แƒ›แƒแƒก แƒแƒ  แƒฐแƒฅแƒแƒœแƒ“แƒ แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒ˜ SLA. แƒฎแƒแƒœแƒ“แƒแƒฎแƒแƒœ Firebase แƒ’แƒ•แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ“แƒ แƒ“แƒแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒแƒ“แƒ˜แƒ—, แƒกแƒแƒœแƒแƒ› แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒฃแƒคแƒแƒกแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒ  แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ“แƒ˜แƒ— แƒ›แƒแƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒ•แƒ˜แƒœแƒ“แƒแƒ“แƒ. แƒ แƒ˜แƒ’แƒจแƒ˜ แƒšแƒแƒ“แƒ˜แƒœแƒ˜ แƒœแƒแƒฎแƒ”แƒ•แƒแƒ  แƒกแƒแƒแƒ—แƒแƒ›แƒ“แƒ” แƒ’แƒแƒ’แƒ แƒซแƒ”แƒšแƒ“แƒ, แƒ แƒแƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒแƒ. แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒขแƒแƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ˜แƒแƒ แƒ–แƒ”, แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒแƒ› แƒ›แƒแƒ แƒ—แƒšแƒแƒช แƒจแƒ”แƒแƒœแƒ”แƒšแƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒกแƒแƒฎแƒแƒ“แƒ˜ แƒ›แƒแƒ•แƒ˜แƒ“แƒ แƒ›แƒ แƒ’แƒ•แƒแƒšแƒ˜ แƒ—แƒแƒœแƒฎแƒ˜แƒ—. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ’แƒแƒ“แƒแƒฌแƒงแƒ“แƒ Firebase-แƒ˜แƒก แƒ›แƒ˜แƒขแƒแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ˜แƒ“แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ’แƒฃแƒœแƒ“แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ“ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ.

แƒ“แƒแƒ™แƒ”แƒ แƒ˜ + แƒžแƒ˜แƒ—แƒแƒœแƒ˜ + แƒ‘แƒแƒจแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒ˜แƒฆแƒ”แƒ— Docker, แƒฉแƒแƒ•แƒกแƒ•แƒ˜แƒ— แƒ›แƒแƒกแƒจแƒ˜ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜, แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ”แƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ Python-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒก แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜. แƒ“แƒ, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ‘แƒแƒจแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ - แƒกแƒแƒ“ แƒ•แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ˜แƒ— แƒ›แƒแƒ— แƒ’แƒแƒ แƒ”แƒจแƒ”?

แƒฎแƒฃแƒ—แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒงแƒ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ•แƒ แƒชแƒ”แƒšแƒ˜ แƒกแƒ˜แƒ:

  • ARK แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ;
  • แƒฏแƒฃแƒœแƒ˜แƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜;
  • แƒšแƒ˜แƒœแƒขแƒ˜;
  • Android Studio แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก;
  • แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜;
  • แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜.

แƒแƒ›แƒแƒœ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ˜แƒชแƒ˜แƒšแƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒแƒ•แƒแƒ แƒ˜แƒ. แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒแƒ“ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒฉแƒ˜แƒแƒ“แƒœแƒ”แƒœ, แƒ แƒแƒ› แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒšแƒแƒ“แƒ˜แƒœแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ.

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒฎแƒแƒœแƒ˜แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒ แƒซแƒ”แƒšแƒ˜? แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ Bitbucket-แƒ“แƒแƒœ แƒ“แƒ TeamCity-แƒ“แƒแƒœ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜แƒ— แƒแƒ›แƒแƒก แƒšแƒแƒ“แƒ˜แƒœแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ“แƒ แƒ 45 แƒฌแƒฃแƒ—แƒ˜. แƒแƒœแƒฃ, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜, pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒกแƒแƒก, แƒกแƒแƒจแƒฃแƒแƒšแƒแƒ“ 45 แƒฌแƒฃแƒ—แƒก แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒก. แƒฉแƒ”แƒ›แƒ˜ แƒแƒ–แƒ แƒ˜แƒ—, แƒ”แƒก แƒ‘แƒ”แƒ•แƒ แƒ˜แƒ แƒ“แƒ แƒแƒกแƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ.

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ“แƒแƒ•แƒแƒฉแƒฅแƒแƒ แƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ.

แƒ“แƒแƒ•แƒแƒฉแƒฅแƒแƒ แƒแƒ—

แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒœแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ แƒ˜แƒ’แƒจแƒ˜ แƒ“แƒ’แƒแƒœแƒแƒœ, แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ แƒแƒกแƒแƒช แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒแƒ แƒ˜แƒก แƒ˜แƒงแƒ˜แƒ“แƒ แƒ›แƒ”แƒขแƒ˜ แƒแƒžแƒแƒ แƒแƒขแƒฃแƒ แƒ โ€” แƒ•แƒ แƒชแƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒจแƒ”แƒœแƒแƒ‘แƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒก แƒ แƒ˜แƒ’แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒšแƒแƒ“แƒ˜แƒœแƒ˜แƒก แƒ“แƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ“แƒœแƒแƒ• แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ—แƒแƒ•แƒแƒ“ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ.

แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒจแƒšแƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ

แƒฉแƒ•แƒ”แƒœแƒ›แƒ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ›แƒ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒแƒ› แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒญแƒ˜แƒ แƒแƒก แƒแƒ› แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜.

  • แƒแƒ  แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒก. CI-แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒแƒก แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ แƒแƒฆแƒแƒช แƒแƒ  แƒงแƒแƒšแƒ˜แƒ‘แƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒคแƒšแƒ˜แƒฅแƒขแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒ•แƒ—แƒฅแƒ•แƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ•แƒ”แƒ แƒแƒ•แƒ˜แƒœ แƒ•แƒ”แƒ แƒแƒคแƒ”แƒ แƒก แƒแƒฌแƒงแƒแƒ‘แƒก, แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒฉแƒ”แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒœแƒ”แƒ แƒ•แƒ˜แƒฃแƒšแƒแƒ‘แƒก.
  • แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒฅแƒชแƒ”แƒ•แƒแƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒฆแƒ˜แƒšแƒแƒ™แƒ–แƒ” แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒกแƒแƒก, แƒแƒœ แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜. แƒ”แƒก แƒชแƒฃแƒ“แƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒกแƒ”แƒ—แƒ›แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒ› แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒแƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก.
  • แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฆแƒ˜แƒšแƒแƒ™แƒ–แƒ” แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ˜แƒšแƒ˜แƒ 10 แƒžแƒ˜แƒฅแƒกแƒ”แƒšแƒ˜ แƒ›แƒแƒ แƒชแƒฎแƒœแƒ˜แƒ•.
  • แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ“แƒแƒ•แƒแƒšแƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ–แƒ แƒ“แƒ.

แƒแƒ› แƒกแƒ˜แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ˜ แƒžแƒฃแƒœแƒฅแƒขแƒ˜แƒ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒแƒกแƒ”แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ•แƒ˜แƒญแƒ˜แƒ แƒแƒ—. แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ”แƒ‘แƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ”แƒก. แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ  แƒ“แƒแƒ•แƒแƒšแƒ˜แƒแƒœแƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ’แƒแƒ›แƒ™แƒšแƒแƒ•แƒ”แƒ‘แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒ“แƒ แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ•แƒแƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—, แƒ แƒแƒ› แƒแƒ  แƒ’แƒแƒ›แƒแƒ’แƒ•แƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒœแƒ แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—.

แƒแƒ› แƒ™แƒšแƒแƒกแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒ”แƒ— แƒฉแƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒกแƒ˜แƒ. แƒ’แƒแƒ“แƒแƒ™แƒ•แƒ”แƒ—แƒ แƒšแƒ˜แƒœแƒขแƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒฆแƒแƒ›แƒ˜แƒ—: แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒแƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒงแƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜. แƒจแƒ”แƒ•แƒ—แƒแƒœแƒฎแƒ›แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ  แƒ“แƒแƒ•แƒแƒšแƒ˜แƒแƒœแƒ”แƒ‘แƒแƒ–แƒ” แƒชแƒแƒšแƒ™แƒ” แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒ“แƒ Android Studio-แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ›แƒ˜แƒขแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ. Android Studio Docker-แƒจแƒ˜ แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ“ แƒŸแƒฆแƒ”แƒ แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒแƒ›แƒ แƒแƒ• แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒแƒจแƒ˜. Android Studio แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ‘แƒ แƒซแƒแƒšแƒแƒก แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ  แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ—แƒแƒœ. แƒแƒกแƒ”แƒ•แƒ” แƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒแƒ  แƒ˜แƒงแƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒ˜แƒงแƒ แƒชแƒ แƒฃ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜. แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ แƒฉแƒ˜แƒ—:

  • ARK แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ;
  • แƒฏแƒฃแƒœแƒ˜แƒขแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜;
  • แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜.

Gradle แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฅแƒ”แƒจแƒ˜

แƒ›แƒซแƒ˜แƒ›แƒ” แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜ แƒ’แƒแƒฎแƒ“แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ แƒฃแƒšแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒก แƒกแƒแƒ–แƒฆแƒ•แƒแƒ แƒ˜ แƒแƒ  แƒแƒฅแƒ•แƒก!

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 150 gradle แƒ›แƒแƒ“แƒฃแƒšแƒแƒ“. Gradle แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฅแƒ”แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒกแƒ˜แƒœแƒฏแƒ•แƒ.

Gradle แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฅแƒ”แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒฅแƒ”แƒจแƒ˜ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒก แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒฃแƒšแƒ˜ แƒแƒ แƒขแƒ”แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒจแƒ˜ แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. Gradle, แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒแƒ“แƒ’แƒ˜แƒœแƒแƒก แƒ™แƒแƒ“แƒ˜, แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก HTTP-แƒก, แƒ แƒแƒ—แƒ แƒ“แƒแƒแƒ™แƒแƒ™แƒฃแƒœแƒแƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒฅแƒ”แƒจแƒ–แƒ” แƒ“แƒ แƒฐแƒ™แƒ˜แƒ—แƒฎแƒแƒก แƒ•แƒ˜แƒœแƒ›แƒ”แƒ› แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ แƒ—แƒฃ แƒแƒ แƒ แƒ”แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ. แƒ—แƒฃ แƒ™แƒ˜, แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก.

Gradle แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฅแƒ”แƒจแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ Gradle แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก Docker แƒกแƒฃแƒ แƒแƒ—แƒก. แƒฉแƒ•แƒ”แƒœ แƒ”แƒก แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ— แƒกแƒแƒ› แƒกแƒแƒแƒ—แƒจแƒ˜.

แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒ˜แƒงแƒ Docker-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก.

แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒฅแƒ”แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ” แƒฅแƒ”แƒจแƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒœแƒขแƒ˜ แƒ˜แƒงแƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 65. แƒกแƒแƒ›แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ— แƒแƒ› แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก 20%-แƒ›แƒ“แƒ” แƒ’แƒแƒ–แƒ แƒ“แƒ. แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช Android แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก, แƒแƒฅแƒ•แƒ— แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒขแƒ แƒแƒœแƒ–แƒ˜แƒขแƒฃแƒšแƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒช แƒ’แƒ แƒ”แƒ“แƒšแƒ›แƒ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ แƒฅแƒ”แƒจแƒ˜.

แƒฅแƒ”แƒจแƒ˜แƒก แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒ“แƒแƒ•แƒแƒฉแƒฅแƒแƒ แƒ”แƒ— แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ, แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒ— แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒ“ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ–แƒ”แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒก.

แƒ–แƒ”แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜

pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— git diff-แƒก แƒ“แƒ แƒ•แƒžแƒแƒฃแƒšแƒแƒ‘แƒ— แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒš Gradle แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒก.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒแƒ–แƒ แƒ˜ แƒแƒฅแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒœ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒš แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒแƒ—แƒ–แƒ” แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒš แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ“แƒฃแƒšแƒก. แƒ›แƒ”แƒ–แƒแƒ‘แƒ”แƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก แƒแƒ–แƒ แƒ˜ แƒแƒ  แƒแƒฅแƒ•แƒก: แƒ˜แƒฅ แƒ™แƒแƒ“แƒ˜ แƒแƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ แƒ“แƒ แƒ•แƒ”แƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒขแƒ”แƒฎแƒแƒ•แƒก.

แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒแƒ แƒช แƒ˜แƒกแƒ” แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ“แƒ”แƒก แƒ–แƒ”แƒ“แƒ แƒ“แƒแƒœแƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ”แƒ•แƒ แƒ˜แƒกแƒขแƒ˜แƒ™แƒ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ—, แƒ แƒแƒ›แƒ”แƒš แƒ›แƒแƒ“แƒฃแƒšแƒก แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ˜.

แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒแƒ— แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ แƒ•แƒ แƒ™แƒ•แƒ˜แƒ แƒ.

แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒ”แƒ‘แƒ›แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ. 45 แƒฌแƒฃแƒ—แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 15-แƒ›แƒ“แƒ” แƒแƒ•แƒ”แƒ“แƒ˜แƒ—. แƒฃแƒ™แƒ•แƒ” แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜แƒ, แƒ แƒแƒ› แƒ›แƒ”แƒแƒ—แƒฎแƒ”แƒ“แƒ˜ แƒกแƒแƒแƒ—แƒ˜ แƒ“แƒแƒ•แƒ”แƒšแƒแƒ“แƒแƒ— แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒแƒก.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒก แƒžแƒ แƒ”แƒขแƒ”แƒœแƒ–แƒ˜แƒ, แƒ แƒแƒ› แƒ›แƒแƒ— แƒแƒ  แƒ”แƒกแƒ›แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜ build-แƒ”แƒ‘แƒ˜ แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ, แƒกแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒœแƒแƒฎแƒแƒœ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜, แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก build แƒฌแƒ˜แƒ—แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ˜ แƒฉแƒแƒ•แƒแƒ แƒ“แƒ แƒ“แƒ แƒ.แƒจ.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒฃแƒ™แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒœแƒ”แƒšแƒ”แƒ‘แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ˜แƒ—, แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ™แƒแƒคแƒ˜แƒ แƒ“แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ›แƒแƒ’แƒ•แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒœแƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ PR-แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— Bitbucket-แƒจแƒ˜ PR-แƒ˜แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒกแƒแƒ“แƒแƒช แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜ build แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ“แƒ แƒ แƒแƒขแƒแƒ›, แƒ“แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒ–แƒแƒœแƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ Slack-แƒจแƒ˜. แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก PR แƒ“แƒแƒคแƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒ แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒก แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜: แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒแƒ•แƒแƒ แƒ˜แƒฃแƒšแƒ˜ แƒแƒœ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒญแƒ˜แƒ แƒแƒ— build-แƒก แƒ“แƒ แƒ›แƒแƒฎแƒ•แƒ“แƒ”แƒ— แƒ›แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒจแƒ˜.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ”แƒฅแƒ•แƒกแƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ แƒ“แƒแƒ˜แƒฎแƒแƒ แƒฏแƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ  แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒแƒ–แƒ”.

แƒ’แƒ”แƒ’แƒ›แƒ”แƒ‘แƒ˜

แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒฃแƒแƒฎแƒšแƒ”แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒแƒ–แƒ”. แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜แƒ— แƒแƒฎแƒแƒš แƒ“แƒแƒœแƒ”แƒ–แƒ” - แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜แƒก แƒคแƒ”แƒ แƒ›แƒ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜ แƒ“แƒ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜แƒ, แƒ›แƒแƒ—แƒ˜ แƒ›แƒแƒ แƒ—แƒ•แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ k8s แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒ›แƒ”แƒœแƒ”แƒฏแƒ›แƒ”แƒœแƒขแƒ˜แƒ—.

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒฎแƒ•แƒ แƒ’แƒ”แƒ’แƒ›แƒ”แƒ‘แƒ˜.

  • แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ— แƒšแƒ˜แƒœแƒขแƒ˜ (แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜). แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ— แƒแƒ› แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—.
  • แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ PR แƒ‘แƒšแƒแƒ™แƒ”แƒ แƒ–แƒ” แƒ‘แƒแƒšแƒแƒ“แƒแƒœ แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒงแƒ•แƒ”แƒšแƒ SDK แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ”.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒแƒ™แƒ•แƒšแƒ˜แƒ”แƒ— แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒแƒก Avito-แƒจแƒ˜. แƒแƒฎแƒšแƒ แƒ›แƒ˜แƒœแƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ แƒฉแƒ”แƒ•แƒ แƒ›แƒ˜แƒ•แƒชแƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ˜ แƒ™แƒฃแƒ—แƒฎแƒ˜แƒ—.

ะกะพะฒะตั‚ั‹

แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒ แƒฉแƒ”แƒ•แƒ แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ”แƒซแƒšแƒแƒก, แƒ”แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ:

แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒ˜แƒงแƒแƒ•แƒ˜แƒ— shell แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ—แƒแƒœ!

Bash แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒ“แƒ แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒ˜แƒ— แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ”แƒจแƒ˜ แƒ’แƒแƒ•แƒแƒ แƒ“แƒœแƒ แƒ“แƒ, แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒฉแƒแƒ•แƒ•แƒแƒ แƒ“แƒ˜แƒ—.

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒœแƒ”แƒœ แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒฃแƒš แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ–แƒ”:

#!/usr/bin/env bash
./gradlew assembleDebug

แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒ”แƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒแƒ—, แƒ“แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒ—แƒฃแƒšแƒ“แƒ”แƒ‘แƒ - แƒ›แƒแƒ“แƒ˜แƒ—, แƒ”แƒ แƒ—แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ›แƒ”แƒแƒ แƒ”แƒ“แƒแƒœ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒ˜แƒฅ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ - แƒ‘แƒแƒšแƒแƒก แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก, แƒ—แƒฃ แƒ แƒ แƒ“แƒแƒœแƒ”แƒ–แƒ” แƒ•แƒแƒ แƒ— แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒจแƒ˜. แƒกแƒแƒญแƒ˜แƒ แƒ แƒชแƒ˜แƒขแƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒ›แƒ, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ—แƒฅแƒ•แƒ”แƒœ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ— แƒจแƒ แƒแƒ›แƒ˜แƒก แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ—, แƒแƒ› แƒฎแƒแƒคแƒแƒœแƒ’แƒจแƒ˜ แƒแƒ  แƒฉแƒแƒ•แƒแƒ แƒ“แƒ”แƒ—.

แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก?

  • แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ”แƒœแƒ. แƒ›แƒ˜แƒฌแƒ”แƒ แƒ”แƒ— แƒžแƒ˜แƒ—แƒแƒœแƒ˜ แƒแƒœ แƒ™แƒแƒขแƒšแƒ˜แƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒฃแƒคแƒ แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜.
  • แƒแƒœ แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒ™แƒ แƒคแƒแƒ แƒ›แƒแƒจแƒ˜ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ gradle แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ›แƒ”แƒแƒ แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒ“แƒ แƒแƒฎแƒšแƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ•แƒจแƒšแƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒ bash แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒ“แƒ แƒ•แƒฌแƒ”แƒ แƒ— แƒฃแƒแƒ›แƒ แƒแƒ• แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒšแƒฃแƒ  gradle แƒแƒ›แƒแƒชแƒแƒœแƒแƒก.

แƒ แƒฉแƒ”แƒ•แƒ #2: แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ™แƒแƒ“แƒ˜แƒ—.

แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒแƒ แƒ Jenkins-แƒ˜แƒก แƒแƒœ TeamCity-แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜ แƒ“แƒ แƒ.แƒจ., แƒแƒ แƒแƒ›แƒ”แƒ“ แƒขแƒ”แƒฅแƒกแƒขแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜. แƒ”แƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ“แƒแƒ‘แƒแƒก. แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒฃแƒ™แƒแƒœ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ แƒแƒœ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ.

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜. แƒ แƒ แƒ•แƒฃแƒงแƒแƒ— แƒ’แƒแƒ แƒ”แƒ›แƒแƒก?

แƒ แƒฉแƒ”แƒ•แƒ #3: Docker-แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒแƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒกแƒ—แƒแƒœ.

แƒ˜แƒก แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ Android-แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก; iOS-แƒก แƒฏแƒ”แƒ  แƒแƒ  แƒแƒฅแƒ•แƒก, แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“.

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ docker แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก jdk แƒ“แƒ android-sdk:

FROM openjdk:8

ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" 
    ANDROID_HOME="/usr/local/android-sdk" 
    ANDROID_VERSION=26 
    ANDROID_BUILD_TOOLS_VERSION=26.0.2

# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android 
    && cd "$ANDROID_HOME" 
    && curl -o sdk.zip $SDK_URL 
    && unzip sdk.zip 
    && rm sdk.zip 
    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses

# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" 
    "platforms;android-${ANDROID_VERSION}" 
    "platform-tools"

RUN mkdir /application
WORKDIR /application

แƒแƒ› Docker แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ (แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒแƒก แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ— แƒ˜แƒ’แƒ˜ แƒ›แƒ–แƒแƒ“ GitHub-แƒ“แƒแƒœ) แƒ“แƒ แƒแƒฌแƒงแƒแƒ‘แƒ— แƒ˜แƒ›แƒ˜แƒฏแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ. แƒ“แƒ แƒ’แƒแƒ˜แƒแƒ แƒ”แƒ— Junit แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜.

แƒแƒ แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜, แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒช แƒแƒ›แƒแƒก แƒแƒ–แƒ แƒ˜ แƒแƒฅแƒ•แƒก, แƒแƒ แƒ˜แƒก แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒฃแƒ แƒแƒ‘แƒ แƒ“แƒ แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒ. แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒแƒ— แƒแƒ—แƒ”แƒฃแƒšแƒ˜ build แƒแƒ’แƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒ”แƒฅแƒœแƒ”แƒ‘แƒแƒ— แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ’แƒแƒ แƒ”แƒ›แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ˜แƒœแƒ. แƒ”แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก CI แƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒก. Android-sdk-แƒ˜แƒก แƒ“แƒแƒ™แƒ”แƒ แƒจแƒ˜ แƒฉแƒแƒกแƒ›แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ”แƒก แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ: แƒชแƒแƒขแƒ แƒ›แƒ”แƒขแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— (แƒแƒœ แƒ˜แƒกแƒ”แƒ• แƒ’แƒแƒ“แƒ›แƒแƒฌแƒ”แƒ แƒแƒ— แƒ›แƒ–แƒ GitHub-แƒ“แƒแƒœ).

แƒ แƒฉแƒ”แƒ•แƒ No4: แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฎแƒแƒšแƒฎแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ“แƒ, แƒ แƒแƒช แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ, แƒ›แƒ™แƒแƒคแƒ˜แƒ แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒ แƒ แƒ’แƒแƒคแƒฃแƒญแƒ“แƒ, แƒ แƒ แƒขแƒ”แƒกแƒขแƒ˜ แƒฉแƒแƒ•แƒแƒ แƒ“แƒ, แƒกแƒแƒ“ แƒ•แƒœแƒแƒฎแƒ buildlog.

แƒ แƒฉแƒ”แƒ•แƒ #5: แƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒžแƒ แƒแƒ’แƒ›แƒแƒขแƒฃแƒšแƒ˜ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก.

แƒœแƒแƒ—แƒšแƒแƒ“ แƒ’แƒ”แƒกแƒ›แƒ˜แƒ—, แƒ แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ แƒ’แƒกแƒฃแƒ แƒ—, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ“แƒ แƒ แƒ“แƒ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒ“แƒ แƒ แƒ’แƒกแƒฃแƒ แƒ— แƒ“แƒแƒฎแƒแƒ แƒฏแƒแƒ—. แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ’แƒแƒ“แƒแƒ˜แƒ“แƒแƒก แƒฆแƒแƒ›แƒ˜แƒ—. แƒ“แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜, แƒ•แƒ˜แƒœแƒช แƒ˜แƒญแƒ”แƒ แƒ”แƒœ แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก, แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒขแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜.

แƒ แƒฉแƒ”แƒ•แƒ #6: แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ›แƒ–แƒ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜.

แƒแƒฎแƒšแƒ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒแƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ”แƒœ แƒฆแƒ แƒฃแƒ‘แƒ”แƒš CI-แƒก.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ”แƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒแƒ แƒแƒคแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ˜แƒฎแƒแƒ“แƒ”แƒ— แƒชแƒแƒขแƒ แƒคแƒฃแƒšแƒ˜, แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ“แƒ แƒฉแƒแƒแƒขแƒแƒ แƒ”แƒ— แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒช แƒ™แƒ˜.

แƒ แƒฉแƒ”แƒ•แƒ #7: แƒ“แƒ˜แƒ“ แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒจแƒ˜แƒ“แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฃแƒคแƒ แƒ แƒ›แƒแƒ›แƒ’แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ“แƒ แƒ” แƒ—แƒฃ แƒ’แƒ•แƒ˜แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ, แƒจแƒ˜แƒ“แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฃแƒคแƒ แƒ แƒ›แƒแƒ›แƒ’แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒ’แƒแƒฎแƒ“แƒ”แƒ‘แƒ. แƒแƒ› แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ. แƒ”แƒ™แƒแƒœแƒแƒ›แƒ˜แƒ™แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒจแƒ”แƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒแƒœแƒ˜: แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜, แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ แƒฃแƒคแƒ แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒฃแƒคแƒ แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒข แƒ˜แƒœแƒ•แƒ”แƒกแƒขแƒ˜แƒชแƒ˜แƒแƒก.

แƒ”แƒ™แƒแƒœแƒแƒ›แƒ˜แƒ™แƒ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒ—แƒ”แƒš แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒก, แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒฉแƒแƒ—แƒ•แƒšแƒ˜แƒ—. แƒ›แƒ” แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜ แƒจแƒ แƒแƒ›แƒ˜แƒก แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

CI-แƒ˜แƒก แƒ”แƒ•แƒแƒšแƒฃแƒชแƒ˜แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒจแƒ˜

แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ, แƒ แƒแƒ› แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ แƒกแƒฃแƒš แƒฃแƒคแƒ แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ“แƒ”แƒ‘แƒ. แƒแƒ› แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒ”แƒกแƒ›แƒ˜แƒ—, แƒ แƒแƒ› แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒ–แƒ แƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“. แƒแƒ แƒ˜ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 50 แƒ“แƒฆแƒ˜แƒก แƒ“แƒแƒฎแƒแƒ แƒฏแƒ•แƒ แƒจแƒ˜แƒ“แƒ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜แƒก แƒคแƒ”แƒ แƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒ–แƒ” แƒฃแƒฆแƒ˜แƒ›แƒฆแƒแƒ›แƒ แƒ˜แƒ“แƒ”แƒแƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ“แƒ˜แƒ“แƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒแƒ  แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒชแƒฃแƒ“แƒ˜ แƒ˜แƒ“แƒ”แƒแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ.แƒจ. แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.

แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ˜แƒ› แƒ˜แƒ“แƒ”แƒ˜แƒ—, แƒ แƒแƒ› แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒ แƒกแƒแƒญแƒ˜แƒ แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜ แƒซแƒ•แƒ˜แƒ แƒ˜แƒ, แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก แƒฃแƒจแƒ•แƒ”แƒ‘แƒ”แƒœ แƒ“แƒ แƒ”แƒ–แƒแƒ แƒ”แƒ‘แƒแƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฎแƒแƒšแƒฎแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ”แƒฎแƒ”แƒ‘แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก.

  • แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒซแƒ•แƒ˜แƒ แƒ˜แƒ. แƒ“แƒแƒ˜แƒ›แƒแƒฎแƒกแƒแƒ•แƒ แƒ”แƒ— แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜.
  • แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒแƒฅแƒ›แƒ” แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก แƒ”แƒฎแƒ”แƒ‘แƒ, แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก แƒฃแƒจแƒ•แƒ”แƒ‘แƒ”แƒœ.
  • แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒซแƒแƒšแƒ˜แƒแƒœ แƒ”แƒ–แƒแƒ แƒ”แƒ‘แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒกแƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ แƒแƒขแƒแƒ› แƒ’แƒแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ” แƒกแƒฎแƒ•แƒ แƒ แƒแƒ›, แƒ แƒแƒขแƒแƒ› แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ”แƒก แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ?

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒ›แƒแƒฅแƒ•แƒก แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ: แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก แƒ˜แƒญแƒ”แƒ แƒ”แƒœ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก 20%. แƒ“แƒ แƒ”แƒก แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ™แƒแƒ“แƒก แƒชแƒฃแƒ“แƒแƒ“ แƒฌแƒ”แƒ แƒ”แƒœ. แƒ”แƒก แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒœแƒ˜ แƒแƒ แƒ˜แƒแƒœ, แƒ แƒแƒ› แƒ—แƒฃ แƒ แƒแƒ˜แƒ›แƒ” แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒ“แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒ”แƒœ, แƒ˜แƒก แƒแƒ  แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜, แƒ˜แƒก แƒ“แƒแƒ˜แƒญแƒ”แƒ แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒฃแƒ—แƒ›แƒแƒœ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒ แƒแƒก, แƒ•แƒ˜แƒ“แƒ แƒ” แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“ แƒ แƒแƒ˜แƒ›แƒ”แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒก.

แƒ˜แƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ”แƒ— แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒแƒ›แƒ˜แƒ”แƒ แƒแƒ“.

แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒœแƒ˜แƒ™แƒแƒšแƒแƒ˜ แƒœแƒ”แƒกแƒขแƒ”แƒ แƒแƒ•แƒ˜ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ—แƒแƒ•แƒแƒ“ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ• แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒแƒ›แƒ˜แƒขแƒ”แƒขแƒ˜แƒก แƒฌแƒ”แƒ•แƒ แƒ˜แƒช AppsConf แƒ“แƒ แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒแƒœ แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒ•แƒšแƒ”แƒ‘แƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒ˜แƒกแƒ แƒฃแƒšแƒ” แƒ“แƒ แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ˜แƒแƒœแƒแƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒคแƒแƒกแƒ“แƒ”แƒก แƒ—แƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜. แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒ˜ แƒ›แƒแƒ‘แƒ แƒซแƒแƒœแƒ“แƒ˜แƒ— Infospace-แƒจแƒ˜ 22-23 แƒแƒžแƒ แƒ˜แƒšแƒก.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ