ืืืื, ืจืื ืืืฆืจื ืืชืืื ื ืืคืืชืืื ืืฆืืืชืื. ืืชื ืืื ืืคืืชืื ืฆืืืช ืืืฆืื ืืืืืื ืืืืืช ืืืืฆืืื ืืฆืืจื ืฉื ืืืืืจืื ืคืฉืืื.
ืืืืจ ืฉืืชืืช ืืช ืืงืื ืฉืื, ืขืืื ืืืืื ืฉืืื:
- ืื ืขืืื.
- ืื ืื ืฉืืืจ ืฉืื ืืืจ, ืืืื ืืงืื ืฉืืชืื ืขืืืชืื.
ืื ืฉื ื ืืชื ืืื ืืชืงืืืืื, ืื ืืชื ืืืจื ืืืฆืืื. ืืื ืืืืืง ืืงืืืช ืืช ืืชื ืืื ืืืื ืืื ืืกืืืช ืืื ืชืื ืืจืืืื, ืืืขื ื ื-Continuous Integration.
CI ืืื ืืจืืืช ืขืืืื ืฉืื ืืชื ืืฉืื ืืช ืืงืื ืฉืื ืืงืื ืืืืฆืจ ืืืืื ืืขืชืื ืงืจืืืืช ืืื ืืืคืฉืจ. ืืืชื ืื ืจืง ืืฉืชืื, ืืื ืื ืืืืง ืื ืืืื ืฉืืื ืขืืื. ืืืืืื ืฉืืชื ืฆืจืื ืืืืืง ืืจืื ืืืขืชืื ืงืจืืืืช, ืืืื ืืืฉืื ืขื ืืืืืืฆืื. ืืชื ืืืื ืืืืืง ืืื ืืืืคื ืืื ื, ืืื ืืชื ืื ืฆืจืื, ืืื ื ืืกืืื.
- ืื ืฉืื ืืงืจืื. ืฉืขืช ืขืืืื ืฉื ืื ืืชืื ืช ืืงืจื ืืืชืจ ืืฉืขืช ืขืืืื ืฉื ืื ืฉืจืช.
- ืื ืฉืื ืขืืฉืื ืืขืืืืช. ืืื, ืขืืืืื ืืืืืืฆืจ ืืฆืืื ืฉืืื ืืืฆืขื ืืืืงืืช ืืกื ืืฃ ืืื ื ืืื ืื ืืืืืจ ืฉืืื ืืืืืงืื.
- ืื ืฉืื ืขืฆืื ืื. ืืื ืคืขื, ืืฉืื ื ืืกืืื ืืฉืืื, ืขืืื ืืืืฉืื: โืื ืืฉ ืืืืืง? ืืชืืชื ืฉืชื ืฉืืจืืช - ืืื ืขืืื! ืื ื ืืืฉื ืฉืื ืืืืงืื ืืฉ ืืคืขืืื ืืืฉืืืช ืืืื. ืืื ืชืืื ืืืื ืืืืืง.
ืืืฆื ืืืืืข ืืคืืชื ืืื ืืืจืฆืื ืืชืืฉืืช ืืฆืืืช ืืคืืชืื ืื ืืื ืฉื Avito, ืืืฆื ืื ืขืืจื ื-0 ื-450 ืื ืืื ืืืื, ืืื ืืืื ืืช ืืื ืืช ืืจืืืืืช 200 ืฉืขืืช ืืืื, ืืืืจ ื ืืงืืืื ื ืกืืจืื (
ืืกืืคืืจ ืืืืกืก ืขื ืืืืื ืฉื ืคืงืืืช ืื ืืจืืืื, ืืื ืจืื ืืืืฉืืช ืืฉืืืืช ืื ื-iOS.
ืคืขื, ืืื ืืื ืขืื ืืฆืืืช Avito Android. ืืืืืจื, ืืื ืื ืืื ืืงืืง ืืฉืื ืืืจ ืืฉืืืื ืืชืืฉื: ืื ืืื ืขื ืื ืืืฉืชืื.
ืืื ืืืคืืืงืฆืื ืืืื, ืขืื ืืขืื ืืฉืืืืช ืืืฉืืช ืืืคืืขื, ืืืฆืืืช ืืื ืืืชืื. ืืฉืื ืืกืืื, ืืืืข ืืืื ืืืงืื ืืืืคื ืจืฉืื ืืืชืจ ืชืืืื ืฉืืืื ืงืื. ืืืืื ืืืฉืชืืฉ ื-Git flow.
ืืจืขืืื ืฉื Git flow ืืืืข: ืืคืจืืืงื ืืฉ ืขื ืฃ ืคืืชืื ืืฉืืชืฃ ืืื, ืืืื ืคืืฆ'ืจ ืืืฉ ืืคืชืืื ืืืชืืื ืขื ืฃ ื ืคืจื, ืืชืืืืืื ืืืื, ืืืืคืื, ืืืฉืื ืจืืฆืื ืืืื ืืช ืืงืื ืฉืืื ืืชืื ืกื ืืฃ ืืคืืชืื, ืคืืชืืื ืืงืฉื ืืืฉืื. ืืื ืืืืืง ืืืข ืืืืื ืืืืฉืืช, ืืฆืื ื ืกืงืืจืช ืงืื, ืืืืืจ, ืขืืืชืื ืืืืืื ืืืืืง ืืืืฉืจ ืืช ืืงืื ืฉื ืื.
ืืืืงืืช
ืืจืืืช ืงืื ืืขืื ืืื ืื ืืื ืื, ืืื ืื ืืกืคืืง. ืืื, ืืืืงืืช ืืืืืืืืืช ืืืฆืืืช.
- ืงืืื ืื, ืื ืื ื ืืืืงืื ืืจืืืช ARK.
- ืืจืื ืืืืงืืช ื'ืื ืื.
- ืื ื ืจืืืื ืืืกืื ืงืื, ืืืืืื ืฉืื ื ืืจืืฆืื ืืืืงืืช.
ืืื ืืืืื ืืืฆื ืืฉ ืืืคืขืื ืืช ืืืืืงืืช ืืืื, ืืืื ื ืกืชืื ืขื ืชืืืื ืืคืืชืื ื-Avito.
ืื ืืืื ืืืืืช ืืืืฆื ืืฆืืจื ืกืืืืืช ืื:
- ืืคืชื ืืืชื ืงืื ืืืืฉื ืื ืืื ืฉืื. ืืชื ืืืื ืืืจืืฅ ืืืืงืืช ืืื ืืืจืฆืื ืืืฉ ืืื - ืื ืขื commit hook, ืื ืคืฉืื ืืืจืืฅ ืืืืงืืช ืืจืงืข.
- ืืืืจ ืฉืืืคืชื ืืืฃ ืืช ืืงืื, ืืื ืคืืชื ืืงืฉืช ืืฉืืื. ืขื ืื ืช ืฉืืงืื ืฉืื ืืืืื ืืกื ืืฃ develop ืืฉ ืฆืืจื ืืขืืืจ ืกืงืืจืช ืงืื ืืืืกืืฃ ืืช ืืกืคืจ ืืืืฉืืจืื ืื ืืจืฉ. ืืชื ืืืื ืืืคืขืื ืืืืงืืช ืืื ืืื ืืื: ืขื ืฉืื ืืื ืืื ืืฆืืืื, ืื ื ืืชื ืืืื ืืช ืืงืฉืช ืืืฉืืื.
- ืืืืจ ืืืืื ืืงืฉืช ื-pull ืืืงืื ืืืื ื-Develop, ืชืืืื ืืืืืจ ืืื ื ืื: ืืืฉื ืืืืื, ืืฉืื ืืฉืจืชืื ืคื ืืืื, ืืืืจืืฅ ืืื ืฆ'ืงืื ืฉืชืจืฆื.
ืืฃ ืืื ืื ืืื ืืืคืขืื ืกืจืืงืืช ืืืืฉื ืื ืืื ืฉืื. ืืืฉืจ ืืคืชื ืกืืื ืชืืื ื, ืืื ืจืืฆื ืืืืืฃ ืืืชื ืืืืืจืืช ืืืคืชืื ืืงืฉืช ืืฉืืื. ืื ืืจืืข ืื ืืืฉืงื ืืื ืืืืงืืช ืืจืืืืช, ืื ืื ืจืง ืฉืื ื ืขืื ืืืืืื, ืืื ืื ืืื ืืช ืืคืืชืื: ืืืื ืฉืืืืฉื ืื ืืื ืืืืง ืืฉืื, ืื ืืคืฉืจ ืืขืืื ืขืืื ืืจืืื.
ืืืื ืืืื ื ืืืคืขืื ืฆ'ืงืื ืืืืื, ืื ืืฉ ืืจืื ืืื ืืฉืจืชืื, ืืชื ืืืื ืืฉืืื. ืืื, ืืืจืื ืืฆืขืจ, ืืืฉืจ ืงืื ืืคืืฆ'ืจ ื ืื ืก ืืคืืชืื, ืืืคืชื ืืฉ ืืจืื ืคืืืช ืืืืืืฆืื ืืชืงื ืืช ืืฉืืืืืช ืฉ-CI ืืฆื. ืืื ืคืขื ืชืคืกืชื ืืช ืขืฆืื ืืืฉื ืืฉืืกืชืืืชื ืขื ืื ืืฉืืืืืช ืฉื ืืฆืื ืืืื ืืืืงืจ ืฉืื ื ืืชืงื ืืืชื ืืชืืฉืื ืืืจ ืื, ืื ืขืืฉืื ืืฉ ืืฉืืื ืืืฉื ืืืื ืืื ืื'ืืจื ืฉืื ื ืจืง ืจืืฆื ืืืชืืื ืืขืฉืืช.
ืื ืฆ'ืงืื ืืืกืืื ืืงืฉืช ืืฉืืื, ืื ืืฉ ืืกืคืืง ืืืืืืฆืื, ืื ืขื ืฉื-builds ืืืคืื ืืืจืืงืื, ืืงืื ืื ืืื ืก ื-pitch, ืื ืฉืืืืจ ืฉืืืฉืืื ืื ืชืืฉืื.
ืืชืืฆืื ืืื, ืืืจื ื ืืืกืืจืืืื ืืืื: ืื ื ืืคืขืืืื ืืช ืืจื ืืฆ'ืงืื ืืืคืฉืจื ืืืืื, ืืืฉืืงืื ืืช ืืงืจืืืืื ืฉืืื ืืืขืืงืจ ืืช ืืืืืจืื ืืืืชืจ ืืืงืฉืช ืืฉืืื. ืืื ืื ืื ื ืื ืขืืฆืจืื ืฉื - ืืืงืืื, ืื ืื ื ืืืืขืืื ืืช ืืืืจืืช ืืืืืงืืช ืืื ืืืขืืืจ ืืืชื ืืืฆื ืืืื ืืืฉืืืช ืืืืงืืช ืืงืฉืืช.
ืืืืชื ืืื, ืื ืืื ืืื ืฉืื ื ืืืฉืืื ืื ืืืจ, ืื ืคืฉืื ืืืื ื ืืช ื-ARK build, ืืืืงืืช Junit ืืืืฉืืื ืืืกืื ืงืื ืืืืกื ืืืงืฉืช ืืืฉืืื. ืืืืงื ื ืืช ืื, ืืฉืื ื ืขื ืื ืืื ืื ื ืืช ืืืกืื ืืงืื ืื ืืฉืื ื ืฉืื ืื ื ืื ืฆืจืืืื ืืช ืื.
ืืงื ืื ื ืืืืืื ืืืืืืจ ืืืืืืื ืืช ื-CI ืืืกืืกื (ืืืื ืืขืจืืช ืืืื ืืื ืืฉืืขืจืช, ื ืืจืฉืช ืืงื ื ืืืื).
ืืืืจ ืืื ืืชืืื ื ืืืฉืื ืืืชืจ - ืืื ืื ืื ื ืืืื ืืืืงืื ื ืืื? ืืื ืื ื ืืจืืฆืื ืืงืฉืืช ืืฉืืื ืืฆืืจื ื ืืื ื?
ืืชืืื ื ืืช ืืื ืืื ื-commit ืืืืจืื ืฉื ืืกื ืืฃ ืฉืืื ื ื ืคืชืื ืืงืฉืช ืืืฉืืื. ืืื ืืืืงืืช ืฉื commit ืื ืืืืืืช ืจืง ืืืจืืืช ืฉืืงืื ืฉืืืคืชื ืืชื ืขืืื. ืืื ืื ืื ืืืืืืื ืฉืืื ืื ืฉืืจ ืืืื. ืืืขืฉื, ืืชื ืฆืจืื ืืืืืง ืืช ืืฆื ืกื ืืฃ ืืคืืชืื ืืืืจ ืืืืื ืชืืื ื ืืชืืื.
ืืฉื ืื, ืืชืื ื ืชืกืจืื bash ืคืฉืื premerge.sh:
#!/usr/bin/env bash
set -e
git fetch origin develop
git merge origin/develop
ืืื ืื ืืฉืื ืืืื ืืืืจืื ืื ื-Develop ืคืฉืื ื ืฉืืคืื ืืืขืื ืืืชืืืืื ืืกื ืืฃ ืื ืืืื. ืืืกืคื ื ืืช ืืกืงืจืืคื premerge.sh ืืฉืื ืจืืฉืื ืืื ื-builds ืืืชืืื ื ืืืืืง ืืืืืง ืื ืื ืื ื ืจืืฆืื, ืืืืืจ ืฉืืืื.
ืืงื ืฉืืืฉื ืืืื ืืืชืจ ืืช ืืืขืื, ืืืฆืื ืคืชืจืื ืืืืชืื ืืช ืืชืกืจืื ืืื.
ืืืคืืืงืฆืื ืืชืคืชืื, ืขืื ืืขืื ืืฉืืืืช ืืืคืืขื, ืืฆืืืช ืืื, ื-premerge.sh ืืคืขืืื ืืชืืื ืืืืื ืืืชื ื. ื-Develop ืืื ืฉืื ืืืื ืกืืชืจืื ืฉืฉืืจื ืืช ืืืื ื.
ืืืืื ืืืื ืื ืงืืจื:
ืฉื ื ืืคืชืืื ืื ืืื ืืช ืืชืืืืื ืืขืืื ืขื ืชืืื ืืช A ื-B. ืืคืชื ืคืืฆ'ืจ A ืืืื ืคืืฆ'ืจ ืื ืืฉืืืืฉ ืืคืจืืืงื answer()
ืืืื ืืื ืืื, ืืกืืจ ืืืชื. ืืืงืืื, ืืคืชื ืคืืฆ'ืจ ื' ืืืกืืฃ ืงืจืืื ืืืฉื ืืคืื ืงืฆืื ืืื ืืกื ืืฃ ืฉืื.
ืืคืชืืื ืืกืืืืื ืืช ืขืืืืชื ืืคืืชืืื ืืงืฉืช ืืฉืืื ืื-ืืื ืืช. ื-builds ืืืฉืงืื, premerge.sh ืืืืง ืืช ืฉืชื ืืงืฉืืช ืืืฉืืื ืืืื ืืฆื ืืคืืชืื ืืืืจืื - ืื ืืฆ'ืงืื ืืจืืงืื. ืืืืจ ืืื, ืืงืฉืช ืืืฉืืื ืฉื ืชืืื ื A ืืชืืืืช, ืืงืฉืช ืืืฉืืื ืฉื ืชืืื ื B ืืชืืืืช... ืืื! ืคืชื ืืคืกืงืืช ืืืืืื ืฉืงืื ืืคืืชืื ืืืื ืงืจืืื ืืคืื ืงืฆืื ืื ืงืืืืช.
ืืฉืื ืื ืืืื ืืืชืคืชื, ืื ืื ืืกืื ืืงืืื. ืื ืืฆืืืช ืื ืืืื ืืืกืืฃ ืฉืื ืืืจ ืืืืืืฉ ืืืชื ืืืืืงื.
ืื ืงืจื ืฉืขืืืชื ืืจืื ืืืฉืืืืช ืชืฉืชืืช: ืื ืืืืืงื, ืจืฉืช, ืืกืื ื ืชืื ืื. ืืืืืจ, ืื ืืื ืื ื ืฉืืชืืชื ืืช ืืคืื ืงืฆืืืช ืืืืืืงืืช ืฉืืคืชืืื ืืืจืื ืืฉืชืืฉืื ืืื. ืืืื ืื, ืืฆืืชื ืืช ืขืฆืื ืืืฆืืื ืืืืื ืืขืชืื ืงืจืืืืช ืืืื. ืืคืืื ืืชืืื ื ืืื ืืืืชื ืชืืืื ืืืื ืื.
ืืืืืื ืฉืื ืื ืืชืืื ืื ื, ืืชืืื ื ืืืืื ืืคืฉืจืืืืช ืืืฆื ืืื ืืข ืืืช.
ืืื ืื ืืฉืืืจ ืืืชืคืชื
ืืืคืฉืจืืช ืืจืืฉืื ื: ืื ื ืืืืฉ ืืช ืื ืืงืฉืืช ืืืฉืืื ืืขืช ืขืืืื ืคืืชืื. ืื, ืืืืืื ืฉืื ื, ืืงืฉืช ืืืฉืืื ืขื ืชืืื ื A ืืื ืืจืืฉืื ื ืืืืืื ืืคืืชืื, ืืงืฉืช ืืืฉืืื ืฉื ืชืืื ื B ืชืืื ื ืืืืฉ, ืืืืชืื ืืื, ืืืืืงืืช ืืืืฉืื ืขืงื ืฉืืืืช ืงืืืคืืืฆืื.
ืืื ืืืืื ืืื ืืื ืื ืืืงื, ืฉืงืื ืืืืื ืขื ืฉื ื ืืืกื ืฆืืืืจ. ืื ืื ื ืคืืชืืื ืฉื ื ืื"ืฆ: ืฉื ื ืืื ืื, ืฉื ื ืืจืฆืืืช ืฉื ืฆ'ืงืื. ืืืืจ ืืืืื ื-PR ืืจืืฉืื ืืชืื ืคืืชืื, ืืฉื ื ืฆืจืื ืืืืื ืืช ืืืืฉ. ืืกื ืืื, ืฉื ื ืืืกื ืฆืืืืจ ืืืจืฉืื ืฉืืืฉ ืจืืฆืืช ืฉื ืืืืงืืช: 2 + 1 = 3.
ืืขืงืจืื ืื ืืกืืจ. ืืื ืืกืชืืื ื ืขื ืืกืืืืกืืืงื, ืืืืฆื ืืืืคืืื ื ืืฆืืืช ืฉืื ื ืืื 10 ืืืกื ืฆืืืืจ ืคืชืืืื, ืืื ืืกืคืจ ืืฆ'ืงืื ืืื ืกืืื ืืืชืงืืืืช: 10 + 9 +... + 1 = 55. ืืืืืจ, ืืงืื 10 ืื ืฉื ืืืกื ืฆืืืืจ, ืืชื ืฆืจืื ืืื ืืช ืืืืฉ 55 ืคืขืืื. ืืื ืืืฆื ืืืืืืื, ืืฉืื ืืฆ'ืงืื ืขืืืจืื ืืคืขื ืืจืืฉืื ื, ืืฉืืฃ ืืื ืื ืคืืชื ืืงืฉืช ืืฉืืื ื ืืกืคืช ืืืื ืฉืชืจืืกืจ ืืื ืืขืืืืื.
ืืืืื ื ืืช ืขืฆืืื ืืืคืชืืื ืฉืฆืจืื ืืืืืช ืืจืืฉืื ืื ืืืืืฅ ืขื ืืคืชืืจ ื"ืืืืื", ืื ืื ืฉืื ืขืืฉื ืืืช, ืื ืชืฆืืจืื ืืืืืช ืขื ืฉืื ืืื ืืื ืืขืืจื ืฉืื... ืื, ืื ืื ืืขืืื , ืื ืืื ืืจืฆืื ืืช ืืช ืืืชืคืชืืืช.
ืืจื ืฉื ืืื ืืคืฉืจืืช: ืืืกืืฃ ืืงืฉืืช ืืฉืืื ืืืืจ ืกืงืืจืช ืงืื. ืืืืืจ, ืคืืชืืื ืืงืฉืช ืืฉืืื, ืืืกืคืื ืืช ืืกืคืจ ืืืืฉืืจืื ืื ืืจืฉ ืืขืืืชืื, ืืชืงื ืื ืืช ืืืจืืฉ ืืื ืืฉืืงืื ืืช ื-builds. ืื ืื ืืฆืืืืื, ืืงืฉืช ืืืฉืืื ืืชืืืืช ื-Develop. ืืืงืจื ืื, ืืื ืืคืขืื ืืืืฉ ื ืืกืคืช, ืื ืืืฉืื ืืืื ืืืื. ืืืคืชื, ืืฉืื ื ืคืืชื ืืงืฉืช ืืฉืืื, ืื ื ืืื ืจืืฆื ืืจืืืช ืื ืื ืืขืืื. ืืืืืื, ืื ืืืื ื ืืฉื, ืขืืื ืืชืงื ืืืชื ืืืืืจืืช. ืืืงืจื ืฉื ืื ืืื ืืืฉืืืช, ืืคืืืืง ืืื, ืืืื ืืคืืชืื ืืืื. ืื ืื ืื ืืชืืื ืื ื.
ืืชืืฆืื ืืื, ื ืืชืจื ืจืง ืืืคืฉืจืืช ืืฉืืืฉืืช - ืืืคื ืืื. ืื ืืงืื ืฉืื ื, ืื ืืืงืืจืืช ืฉืื ื ืืืืืกื ืื ืืืืืจ ืืฉืจืช Bitbucket. ืืืชืื ืืื, ืืืื ื ืฆืจืืืื ืืคืชื ืชืืกืฃ ืขืืืจ Bitbucket.
ืชืืกืฃ ืื ืขืืงืฃ ืืช ืื ืื ืื ืืืืืื ืฉื ืืงืฉืช ืืืฉืืื. ืืืชืืื ืืื ืกืื ืืจืืืช: ื-PR ื ืคืชื, ืื ืืืืืืืื ืืืฉืงืื, ืกืงืืจืช ืืงืื ืืืฉืืื. ืืื ืืืืจ ืกืืื ืกืงืืจืช ืืงืื ืืืืคืชื ืืืืื ืืืืืฅ ืขื "ืืืืื", ืืชืืกืฃ ืืืืง ืืื ืืืื ืืฆื ืคืืชืื ืืืฆืขื ืืืืืงืืช. ืื develop ืขืืืื ืืืืจ ื-builds, ืืชืืกืฃ ืื ืืืคืฉืจ ืืืื ืืงืฉืช ืืฉืืื ืืื ืืชืื ืืกื ืืฃ ืืจืืฉื. ืื ืคืฉืื ืืชืืื ืืืืฉ ืืช ืืื ืืื ืฉื ืคืืชืื ืืืฉ ืืืกืืช.
ืืืืืื ืฉืื ื ืขื ืฉืื ืืืื ืกืืชืจืื, ืื ืืื ืืื ืชืืืฉื ืขืงื ืฉืืืืช ืงืืืคืืืฆืื. ืืืชืื ืืื, ืืคืชื ืชืืื ื B ืืฆืืจื ืืชืงื ืืช ืืงืื, ืืืคืขืื ืืืืฉ ืืช ืืืืืงืืช, ืืื ืืชืืกืฃ ืืืื ืืืืืืืืช ืืช ืืงืฉืช ืืืฉืืื.
ืืคื ื ืืืืขืช ืืชืืกืฃ ืืื, ืืืขื ื ืืืืืฆืข ืฉื 2,7 ืจืืฆืืช ืืืงืืจืช ืืื ืืงืฉืช ืืฉืืื. ืขื ืืชืืกืฃ ืืื 3,6 ืืฉืงืืช. ืื ืืชืืื ืื ื.
ืจืืื ืืฆืืื ืฉืืชืืกืฃ ืื ืืฉ ืืกืจืื: ืืื ืืคืขืื ืืืืฉ ืืช ื-build ืจืง ืคืขื ืืืช. ืืืืืจ, ืขืืืื ืืฉ ืืืื ืงืื ืฉืืจืื ืืืืืื ืืืชืคืชื ืฉืื ืืืื ืกืืชืจืื. ืืื ืืกืืืจืืช ืืื ื ืืืื, ืืขืฉืื ื ืืช ืืืืืคื ืืื ืืื ืืกืคืจ ืืืชืืืืช ืืืื ืืกืืืจืืช ืืืืฉืืื. ืืฉื ืชืืื ืื ืืจื ืจืง ืคืขื ืืืช, ืื ืื ืื ืจืื ืื ืืื ืืฉืืื.
ืืงื ืื ื ืฉืืืขืืื ืืืชืื ืืช ืืืจืกื ืืจืืฉืื ื ืฉื ืืชืืกืฃ Bitbucket.
ืฆ'ืงืื ืืืฉืื
ืืื ืชืืื, ืืฆืืืช ืฉืื ื ืืืฉืื ืืืืื. ืฉืืงืื ืืืฉืื ื ืืกืคื.
ืืฉืื ื: ืืื ืืขืฉืืช ืืขืืืืช ืื ืืคืฉืจ ืืื ืืข ืืืชื? ืืืืื ืื ืื ืืืฉืื ื ืืชืื ืงืื ืกืืื. ืืชืืื ื ืขื ืืื, ืืืืื ื-SDK ืฉื ืื ืืจืืืื. ืืื ืืืืชื ืชืงืืคื ืืื ืืืื ืื ืืืข ืืขืืื ืขื ืงืื ืงืืืืื, ืืืืจ ืืื ืื ื 75% ืืืืคืืืงืฆืื ืืชืืื ืืงืืืืื. ืืื, ื ืืกืคื ืืืื ืื ืืืื ืื ืืจืืืื ืกืืืืื ืืืืง.
ืืื ืืขืฉืืช ืืืช, ืืืื ื ืฆืจืืืื ืืขืฉืืช ืืจืื ืกืืืื: ืืงืืช ืืช Android Studio, ืืืจืื ืืืชื ื-Docker ืืืืคืขืื ืืืชื ืขื CI ืขื ืฆื ืืืจืืืืื, ืื ืฉืืื ืืืฉืื ืฉืืื ืคืืขื ืขื ืืืฉื ื ืืื ืืืืชื. ืืื ืื ืขืื.
ืื ืืชืงืืคื ืืื ืืชืืื ื ืืืชืื ืืจืื ืืืืงืืช ืืืฉืืจ ืืืืฉื ืืืืงืช ืฆืืืื ืืกื. ืื ืืืฉืจ ื ืืฆืจ ืฆืืืื ืืกื ืืชืืืืกืืช ืืชืฆืืื ืงืื ื ื ืคืจืืช, ืืืืืืงื ืืืจืืืช ืืฆืืืื ืืกื ืืืชืฆืืื ืืืฉืืืื ืืื ื ืืืื ืืกืื ืืจืื ืืฉืืจืืช ืคืืงืกื ืืืจ ืคืืงืกื. ืื ืืฉ ืื ืืชืืื, ืื ืืืืจ ืฉืืคืจืืกื ืืฉืชืืฉื ืืืคืฉืื ืื ืฉืืฉืื ืื ืืกืืจ ืืกืื ืื ืืช.
ืืื ืืืืงืืช ืืืฉืืจ ืืืืืงืืช ืฆืืืื ืืกื ืฆืจืืืืช ืืืชืืฆืข ืืืืฉืืจืื: ืืืืืืืืจืื ืื ืืืืฉืืจืื ืืืืชืืื. ืืืชืืฉื ืืื ืฉืืฉ ืืจืื ืืืืงืืช ืืื ืืืคืขืืื ืืชืืืจืืช ืืืืื, ืืฉ ืฆืืจื ืืืืื ืฉืืื. ืืงืืช ืืืื ืืฉืื ืืื ืขืชืืจืช ืขืืืื, ืื ืืฆืื ื ืืคืฉืจืืช ืืืื ื - Firebase Test Lab.
Firebase Test Lab
ืื ื ืืืจ ืืืื ืฉ-Firebase ืืื ืืืฆืจ ืฉื ืืืื, ืืืืืจ ืืื ืฆืจืื ืืืืืช ืืืื ืืื ืกืืืจ ืฉืืื ืืืืช ืื ืคืขื. ืืืืืจืื ืกืืืจืื: 5$ ืืฉืขืช ืืคืขืื ืฉื ืืืฉืืจ ืืืืชื, 1$ ืืฉืขืช ืืคืขืื ืฉื ืืืืืืืจ.
ืืงื ืืฉืืืฉื ืฉืืืขืืช ืืืืฉื ืืช Firebase Test Lab ื-CI ืฉืื ื.
ืืื ืืฆืืืช ืืืฉืื ืืืืื, ื-Firebase, ืืืจืื ืืฆืขืจ, ืืชืืืื ืืืืื ืืืชื ื. ืืืืชื ืืื, ืื ืืื ืื ืฉืื SLA. ืืคืขืืื Firebase ืืจืื ืื ื ืืืืชืื ืขื ืฉืืกืคืจ ืืืืฉืืจืื ืืืจืืฉ ืืืื ืคื ืื ืืืืืงืืช, ืืื ืืชืืืื ืืืฆืข ืืืชื ืืื, ืืคื ืฉืจืฆืื ื. ืืืืชื ื ืืชืืจ ืืงืื ืขื ืืฆื ืฉืขื, ืฉืื ืืจืื ืืืื ืืื. ืืืืงืืช ืืืฉืืจ ื ืขืจืื ืืื ืืืกื ืฆืืืืจ, ืืขืืืืืื ืืืืช ืืืื ืืช ืืคืืชืื, ืืื ืืืืข ืืืฉืืื ืืืืืฉื ืขื ืกืืื ืขืืื. ืืืืคื ืืืื, ืืืืื ืื ืืืฉ ืืช Firebase ืืืขืืื ืืชืื ืืืืช, ืืืืืื ืฉืืฆืืืช ืืื ืืกืคืืง.
Docker + Python + bash
ืืงืื ื ืืช Docker, ืืืคื ื ืืชืืื ืืืืืืืจืื, ืืชืื ื ืชืืื ื ืคืฉืืื ื-Python, ืฉืืจืืข ืื ืืื ืืคืขืืื ืืช ืืืกืคืจ ืื ืืจืฉ ืฉื ืืืืืืืจืื ืืืจืกื ืื ืืื ื ืืืคืกืืงื ืืืชื ืืขืช ืืฆืืจื. ืืืืืื, ืืื ืชืกืจืืืื ืืฉืฉ - ืืืคื ืืืื ื ืืืขืืืื?
ืืงื ืืืืฉื ืฉืืืขืืช ืืืฆืืจ ืกืืืืช ืืืืงื ืืฉืื ื.
ืืชืืฆืื ืืื, ืขืืืจ ืื ืืงืฉืช ืืฉืืื ืืืืชื ืจืฉืืื ื ืจืืืช ืฉื ืืืืงืืช ืืกืืืช ืืืืื:
- ืืจืืืช ARK;
- ืืืืงืืช ื'ืื ืื;
- ืืึนื;
- ืืืืงืืช ืื ืืจืืืื ืกืืืืื;
- ืืืื ื ืืืฉืืจ;
- ืืืืงืืช ืฆืืืื ืืกื.
ืื ืื ืข ืชืงืืืช ืืคืฉืจืืืช ืจืืืช. ืืื ืืช ืืื ืขืื, ืืื ืืืคืชืืื ืืชืืื ื ื ืฉืืืืชื ื ืืชืืฆืืืช ืืจืืื ืืื.
ืืื ืืื ืื ืืจืื ืืื? ืืขืืื ื ื ืชืื ืื ื-Bitbucket ื-TeamCity ืืืขืจืืช ืื ืืชืื ืืืื ื ืืช ืื ืืื ืืืชื ื ืืืืฆืข 45 ืืงืืช. ืืืืืจ, ืืคืชื, ืืืฉืจ ืคืืชื ืืงืฉืช ืืฉืืื, ืืืชืื ืืืืืฆืข 45 ืืงืืช ืืชืืฆืืืช ืืื ืืื. ืืืขืชื, ืื ืืจืื, ืืืชื ืื ืืืื ืืขืืื ืืื.
ืืืืื, ืืืืื ื ืืืืืฅ ืืช ืื ืืื ืืื ืฉืื ื.
ืืืื ื ืืจื
ืืจืืืช ืฉืื ืืื ืื ืขืืืืื ืืขืชืื ืงืจืืืืช ืืชืืจ, ืืืืจ ืืจืืฉืื ืฉืื ื ืขืืฉืื ืืื ืงื ื ืืืชืจ ืืืืจื - ืคืืชืื ื ืจืื ืืื ืืคืฉืื ืืืืชืจ. ืืื ืื ืืคืกืืงื ืืขืืื ืืชืืจ, ืืื ืืื ืืืืชื ื ืืจื ืจืง ืืืขื, ืืืืืื ืฉืืืง ืืืฆ'ืงืื ืขืฆืื ืืจืื ืืื ืจื ืืืื.
ืืกืจืช ืฆ'ืงืื ืฉืืืงืืื ืืืชืจ ืืื ืืื
ืืฉืืืื ืืจืฆืืฃ ืฉืื ื ืืืื ืืชืคืืก ืฉืืืืืช ืืืขืืืช ืืกืื ืื.
- ืื ืืืื ื. CI ืืืื ืืชืคืืก ืฉืืืืช ืงืืืคืืืฆืื ืืืฉืจ ืืฉืื ืื ื ืื ื ืขืงื ืฉืื ืืืื ืกืืชืจืื. ืืคื ืฉืืืจ ืืืจืชื, ืื ืืฃ ืืื ืื ืืืื ืืืจืืื ืืืื, ืืืชืคืชืืืช ื ืขืฆืจืช, ืืืืื ืืชืขืฆืื ืื.
- ืืื ืืืชื ืืืืช. ืืืืืื, ืืืฉืจ ืืืคืืืงืฆืื ืื ืืื, ืื ืงืืจืกืช ืืืฉืจ ืืืืฆืื ืขื ืืคืชืืจ, ืื ืฉืืืคืชืืจ ืืื ื ื ืืืฅ ืืื. ืื ืจืข ืื ืืื ืืื ืืืื ืืืืืข ืืืฉืชืืฉ.
- ืืื ืืคืจืืกื. ืืืืืื, ืืืืฆืื ืขื ืืคืชืืจ, ืื ืืื ืื 10 ืคืืงืกืืื ืฉืืืื.
- ืขืืืื ืืืื ืืื ื.
ืืืืจ ืขืืื ืืจืฉืืื ืื, ืืื ื ืฉืจืง ืฉืชื ืื ืงืืืืช ืืจืืฉืื ืืช ืื ืงืจืืืืืช. ืื ืื ื ืจืืฆืื ืืชืคืืก ืืขืืืช ืืืื ืงืืื. ืืืืื ืืคืจืืกื ืืชืืืื ืืฉืื ืืขืืฆืื-ืกืงืืจืช ืื ืืชื ืืชืงื ืืืชื ืืงืืืช ืืืืจ ืืื. ืืืคืื ืืืื ืืื ื ืืฆืจืื ืชืืืื ืืชืื ืื ื ืคืจืืื, ืืืื ืืืืื ื ืื ืืืืืง ืืืช ืืืงืฉืช ืืฉืืื.
ืืืชืืกืก ืขื ืกืืืื ืื, ืืืืื ื ืืช ืื ืจืฉืืืช ืืืืืืืช. ืืื ืืืืง ืืืื ืืช ืืฉืงืชื ืื ืืืื: ืจืง ืืื ืฉืืคืืง ืืืืื ืขื ืืื ืืขืืืช ืืื ืืคืจืืืงื. ืืกืืื ื ืืขืืื ืื ืคืจื ืขื ืืืื ืืืื ื, ื ืืืืงืืช Android Studio ื ืื ืื ืืืืืืื. ืื ืืจืืืื ืกืืืืื ื-Docker ืืืคืขืืช ืืืืงืืช ื ืฉืืข ืืขื ืืื, ืืื ืืืจื ืืืจืื ืืขืืืช ืืชืืืื. ืื ืขืืืื ืืืจืกืืืช Android Studio ืคืืจืืฉื ืืืืง ืขื ืืืืื ืื ืืืื ืื. ืืื ืื, ืืื ืงืฉื ืืชืืื ืืืืืงืืช ืฆืืืื ืืกื, ืืืืืื ืฉืืกืคืจืืื ืื ืืืืชื ืืฆืืื ืืืืืื ืืืื ืชืืฆืืืช ืฉืืืืืช. ืืืืงืืช ืฆืืืื ืืกื ืืืกืจื ืืจืฉืืืช ืืืืืงื.
ืืชืืฆืื ืืื, ื ืฉืืจื ื ืขื:
- ืืจืืืช ARK;
- ืืืืงืืช ื'ืื ืื;
- ืืืื ื ืืืฉืืจ.
ืืืืื ืืจืืืง ืฉื Gradle
ืืื ืฆ'ืงืื ืืืืื ืืื ืืฉืชืคืจ. ืืื ืืื ืืืื ืืฉืืืืช!
ืืืืฉืื ืฉืื ื ืืืจ ืืื ืืคืืฆื ืื-150 ืืืืืืื ืืืืจืืื. ืืืืื ืืจืืืง Gradle ืืืจื ืืื ืขืืื ืืื ืืืงืจื ืื, ืื ืืืืื ื ืื ืกืืช ืืืชื.
ืืืืื ืืจืืืง ืฉื Gradle ืืื ืฉืืจืืช ืฉืืืื ืืื ืืช ืืคืฆืื ืืืืืื ืขืืืจ ืืฉืืืืช ืืืืืืช ืืืืืืืื ืืืืืื. Gradle, ืืืงืื ืืืจืืื ืืช ืืงืื ืืคืืขื, ืืฉืชืืฉ ื-HTTP ืืื ืืืคืืง ืขื ืืืืืื ืืืจืืืง ืืืฉืืื ืื ืืืฉืื ืืืจ ืืืฆืข ืืช ืืืฉืืื ืืื. ืื ืื, ืื ืคืฉืื ืืืจืื ืืช ืืชืืฆืื.
ืืคืขืืช ืืืืืื ืืืจืืืง ืฉื Gradle ืงื ืืืืืื ืฉ- Gradle ืืกืคืง ืชืืื ืช Docker. ืืฆืืื ื ืืขืฉืืช ืืืช ืืฉืืืฉ ืฉืขืืช.
ืื ืื ืฉืืื ืฆืจืื ืืขืฉืืช ืื ืืืคืขืื ืืช Docker ืืืืชืื ืฉืืจื ืืืช ืืคืจืืืงื. ืืื ืืืจืืช ืฉื ืืชื ืืืฉืืง ืืืชื ืืืืืจืืช, ืืืงื ืื ืืจืื ืืื ืขื ืฉืืื ืืขืืื ืืื.
ืืืื ืืจืฃ ืืืืฆืืช ืฉื ืืืืืื.
ืืืชืืื, ืืืื ืืืืฆืืช ืืืืืื ืืื ื-65. ืืืืจ ืฉืืืฉื ืฉืืืขืืช ืืฆืืื ื ืืืขืืืช ืืช ืืขืจื ืืื ื-20%. ืืชืืจืจ ืฉืืืฉืืืืช ืฉืืคืืืงืฆืืืช ืื ืืจืืืื ืืืกืคืช ืืฉ ืชืืืช ืืจื ืืืืืืืช ืืืืจื, ืฉืืืืื ืืจืื ืคืกืคืก ืืช ืืืืืื.
ืขื ืืื ืืืืืจ ืืืืืื, ืืืจืื ื ืืืื ืืช ืืื ืืื. ืืื ืื ืืกืฃ ืืืจืืื, ืืฉ ืื ืืืื ื ืืืฉืืจ, ืืื ืืืงืืื ืืจืื ืืื. ืืืื ืื ืฆืจืื ืืืจืืฅ ืืช ืื ืืืืืงืืช ืขืืืจ ืื ืืงืฉืช ืืฉืืื. ืืื ืืืืืช ืืืช, ืื ื ืืฉืชืืฉืื ืื ืืชืื ืืฉืคืขื.
ื ืืชืื ืืฉืคืขื
ืืืงืฉืช ืืฉืืื, ืื ื ืืืกืคืื git diff ืืืืฆืืื ืืช ืืืืืืืื ืฉื Gradle ืฉืืฉืชื ื.
ืืืืื ื ืืืจืืฅ ืจืง ืืืืงืืช ืืืฉืืจ ืฉืืืืงืืช ืืช ืืืืืืืื ืฉืืฉืชื ื ืืืช ืื ืืืืืืืื ืืชืืืืื ืืื. ืืื ืืขื ืืืจืืฅ ืืืืงืืช ืขืืืจ ืืืืืืื ืฉืื ืื: ืืงืื ืฉื ืื ืืฉืชื ื ืืฉืื ืืืจ ืื ืืืื ืืืืฉืืจ.
ืืืื ื ืืืฉืืจ ืืื ื ืื ืื ืคืฉืืืื, ืืืืืื ืฉืื ืืืืืื ืืืืืช ืืืืงืืื ืืืืืื ืืืืฉืื ืืจืื ืืขืืืื ื. ืืฉืชืืฉื ื ืืืืืจืืกืืืงื ืขื ื ืืชืื ืืชืื ืืื ืืืืื ืืืืื ืืืืื ืฉืืื ืื ืืืื.
ืฉืืจืื ืคืขืืืช ืืืื ื ืืืืฉืืจ ืื ืฉืืืืงื ืจืง ืืช ืืืืืืืื ืืืขืืจืืื ืืจื ืืฉืืื ื ืฉืืืขืืช.
ืืืืฆืขืื ืืืืฆืช ืืืืืงืืช ืขืืื ืืืฆืืื. ื-45 ืืงืืช ืขืืื ื ืื-15. ืื ืืืจ ื ืืจืืื ืืืืืช ืจืืข ืฉืขื ืืื ืืื.
ืืื ืขืืฉืื ืืคืชืืื ืืชืืืื ืืืชืืื ื ืฉืื ืื ืืืื ืื ืืืื builds ืืืฉืงืื, ืืืคื ืืคืฉืจ ืืจืืืช ืืช ืืืืื, ืืื ื-build ืืืื, ืืืื ืืืืงื ื ืืฉืื ืืื'.
ืืขืืืช ืืืฉืื ืืืืืช ืืช ืืคืืชืื, ืืืื ื ืืกืื ื ืืกืคืง ืืืืข ืืจืืจ ืืืคืืจื ืขื ืื ืืืกื ืฆืืืืจ ืืื ืืื ืืื ืืืคืฉืจ. ืืชืืื ื ืขื ืืขืจืืช ื-Bitbucket ื-PR, ืฉืฆืืื ื ืืืื ืื ืืื ื ืืฉืื ืืืืืข, ืืืชืื ื ืืืืขืืช ืืืืงืืืช ื-Slack. ืืกืืคื ืฉื ืืืจ, ืืฆืจื ื ืขืืืจ ืืืฃ ืืฉืืืจื PR ืขื ืจืฉืืื ืฉื ืื ื-builds ืฉืคืืขืืื ืืขืช ืืืกืืืืก ืฉืืื: ืืชืืจ, ืคืืขื, ืงืจืก ืื ืืืฉืื. ืืชื ืืืื ืืืืืฅ ืขื ื-build ืืืืืืข ืืืืื ืฉืื.
ืฉืืฉื ืฉืืืขืืช ืืืงืืฉื ืืืฉืื ืืคืืจื.
ืชืืื ืืืช
ืืืื ื ืขืืืจ ืืืืกืืืจืื ืืืืจืื ื. ืืืืจ ืฉืคืชืจื ื ืืช ืืขืืืช ืืืฉืื, ืืืขื ื ืืจืื ืืืฉื - ืืืืื ื ืืื ืืช ืืืืช ืืืืืืืจืื ืืฉืื ื. ืืืฉืจ ืืฉ ืืจืื ืืืืงืืช ืืืืืืืืจืื, ืงืฉื ืื ืื ืืืชื. ืืชืืฆืื ืืื, ืื ืืืืืืืืจืื ืฉืื ื ืขืืจื ืืืฉืืื k8s ืขื ื ืืืื ืืฉืืืื ืืืืฉ.
ืื ืืกืฃ, ืืฉื ื ืชืืื ืืืช ื ืืกืคืืช.
- ืืืืจ ืืื (ืื ืืชืื ืกืืื ืืืจ). ืื ืื ื ืืืจ ืขืืืืื ืืืืืื ืืื.
- ืืคืขื ืืื ืขื ืืืกื ืืืกื ืฆืืืืจ ืืืื ืื ืืงืฆื ืืงืฆื ืืื ืืจืกืืืช ื-SDK.
ืื ืขืงืื ื ืืืจ ืืืืกืืืจืื ืฉื ืืคืืชืื ืฉื ืืื ืืืจืฆืื ืืชืืฉืืช ืืืืืืื. ืขืืฉืื ืื ื ืจืืฆื ืืชืช ืืื ืขืฆืืช ืื ืงืืืช ืืื ืื ืืกื.
ะกะพะฒะตัั
ืื ืืืืชื ืืืื ืืชืช ืขืฆื ืืืช ืืืื ืื ืชืืื ืื:
ืื ื ืืืืืจ ืขื ืกืงืจืืคืืื ืฉื ืืขืืคืช!
Bash ืืื ืืื ืืืื ืืืืฉ ืืืืง, ืืืื ื ืื ืืืืืจ ืืืชืื ืกืงืจืืคืืื. ืืื ืืชื ืืืื ืืืคืื ืขื ืื ืืืืืืืช, ืืืืจืื ืืฆืขืจ, ื ืคืื ื ืืชืืื.
ืืื ืืชืืื ืขื ืกืงืจืืคืืื ืคืฉืืืื ืฉืจืฆื ืืืืื ืืช ืืื ืืื ืฉืื ื:
#!/usr/bin/env bash
./gradlew assembleDebug
ืืื, ืืืืืข, ืืื ืืชืคืชื ืืืกืชืื ืขื ืืืื - ืืื ื ืจืืฅ ืกืงืจืืคื ืืื ืืืืจ, ืืื ื ืขืืืจ ืฉื ืืื ืคืจืืืจืื - ืืกืืคื ืฉื ืืืจ ื ืืืฆื ื ืืืชืื ืคืื ืงืฆืื ืฉืงืืืขืช ืืืืื ืจืื ืฉื ืงืื ืื bash ืื ืื ื ืืกืืืจืื ืขืืฉืื ืืืื ืืก ืืช ืืฆืืืืืื ืืืจืืฉืื, ืืื ืืืชืืื ืืช ืืื.
ืืชื ืืืื ืืืืืื ืืช ืขืืืืืช ืืขืืืื ืขืืืจ ืคืืชืื ืฉื ืกืงืจืืคืืื ืืืื. ืื ื ืืืืืฅ ืื ืื ืืืคืื ืืคื ืืื.
ืื ื ืืชื ืืืืืืฃ?
- ืื ืฉืคืช ืกืงืจืืคืืื. ืืืชืื ื Python ืื Kotlin Script ืืืชืจ ื ืื ืื ืื ืชืื ืืช, ืื ืกืงืจืืคืืื.
- ืื ืืชืืจ ืืช ืื ืืืืืื ืืื ืืื ืืืืคืก ืืฉืืืืช ืืืจืื ืืืชืืืืช ืืืฉืืช ืขืืืจ ืืคืจืืืงื ืฉืื.
ืืืืื ื ืืืืืจ ืืืคืฉืจืืช ืืฉื ืืื, ืืขืืฉืื ืื ืื ื ืืืืงืื ืืืืคื ืฉืืืชื ืืช ืื ืกืงืจืืคืื ื-bash ืืืืชืืื ืืจืื ืืฉืืืืช ืืจืื ืืืชืืืืช ืืืฉืืช.
ืืืค ืืก' 2: ืืืกื ืชืฉืชืืช ืืงืื.
ืื ื ืื ืืืฉืจ ืืืืจืช ื-Continuous Integration ืืืืืกื ืช ืื ืืืืฉืง ื-UI ืฉื Jenkins ืื TeamCity ืืื', ืืื ืืฆืืจื ืฉื ืงืืฆื ืืงืกื ืืฉืืจืืช ืืืืืจ ืืคืจืืืงืืื. ืื ื ืืชื ืืืืืช ืืจืกื. ืื ืืืื ืงืฉื ืืืืืืจ ืืช ืืงืื ืืืืืจ ืื ืืื ืืช ืืืชื ืขื ืขื ืฃ ืืืจ.
ื ืืชื ืืืืกื ืกืงืจืืคืืื ืืคืจืืืงื. ืื ืืขืฉืืช ืขื ืืกืืืื?
ืืืค ืืก' 3: Docker ืืืื ืืขืืืจ ืขื ืืกืืืื.
ืื ืืืืื ืืขืืืจ ืืืคืชืื ืื ืืจืืืื; ื- 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.
ืฉืชื ืืกืืืืช ืืขืืงืจืืืช ืืื ืฉืื ืืืืื ื ืื ืืืจืืืืช ืืืืจืชืืืช. ืืืืฆืขืืช docker, ืืชื ืืืื ืืืืืก ืืืืืจืืช ืชืจืืกืจ ืกืืื ื ืื ืืื ืฉืชืืื ืืืืืง ืืืชื ืกืืืื ืืื ืืงืืืืช. ืื ืืืคื ืืช ืืืืื ืฉื ืืื ืืกื CI ืืงืืื ืืจืื ืืืชืจ. ืื ืื ืงื ืืืืืฃ ืืช android-sdk ืืชืื docker, ืืื ืขื ืืืืืืืจืื ืื ืงืฆืช ืืืชืจ ืงืฉื: ืชืฆืืจื ืืขืืื ืงืฆืช ืืืชืจ ืงืฉื (ืื ืืืืจืื ืืช ืืืืืืจ ื-GitHub ืฉืื).
ืืืค ืืก' 4: ืื ืชืฉืื ืฉืืืืงืืช ืื ื ืขืฉืืช ืืืขื ืืืืงืืช, ืืื ืืืขื ืื ืฉืื.
ืืฉืื ืืืืจ ืืืขืืงืจ ืืจืืจ ืืฉืื ืืืื ืืืคืชืืื: ืื ื ืฉืืจ, ืืืื ืืืืงื ื ืืฉืื, ืืืคื ืื ื ืืืื ืืจืืืช ืืช ื-buildlog.
ืืืค ืืก' 5: ืืื ืคืจืืืืืื ืืขืช ืคืืชืื ืืื ืืืจืฆืื ืืชืืฉืืช.
ืืื ืืืืจืืจ ืืืื ืกืืื ืฉืืืืืช ืืชื ืจืืฆื ืืื ืืข, ืืื ืืฉืืืื, ืืื ืืืื ืืืฉื ืืชื ืืืื ืืืฉืงืืข. ืืืืงืืช ืฉื ืืฉืืืช ืืืชืจ ืืื ืืื ืืืืืืช ืืืฉื ืืืืืืืช ืื ืืืื. ืืืช ืืื ืืื ืฉืชืืคืกืื ืฉืืืืืช ืื ืืฉืืืืช ืืฉ ืื ืืืฉ ืืืืืืื.
ืืืค ืืก' 6: ืืฉืชืืฉ ืืืืื ืืืื ืื.
ืืฉื ื ืืืจืืช ืจืืืช ืฉืืกืคืงืืช CI ืืขื ื.
ืืื ืคืชืจืื ืืื ืืฆืืืชืื ืงืื ืื. ืืชื ืื ืฆืจืื ืืชืืื ืืฉืื ืืืจ, ืจืง ืืฉืื ืืขื ืืกืฃ, ืืื ืืช ืืช ืืืคืืืงืฆืื ืฉืื ืืืคืืื ืืืคืขืื ืืืืงืืช ืืืฉืืจ.
ืืืค ืืก' 7: ืืฆืืืช ืืืื, ืคืชืจืื ืืช ืคื ืืืืื ืจืืืืืื ืืืชืจ.
ืืื ืืืืงืื ืื ืืืืืืจ, ืืื ืฉืืฆืืืช ืืืื, ืืคืชืจืื ืืช ืืคื ืืืืื ืืืคืื ืืจืืืืืื ืืืชืจ. ืืฉ ืืขืื ืืืช ืืืืืืืช ืืืื. ืืฉ ืืืง ืฉื ืืชืฉืืืืช ืืคืืืชืืช ืืืืืื: ืืื ืคืจืืืงื ืื ืฉืืคืืจ ืืืจ ืื ืงืฉื ืืืชืจ ืืืืชืจ ืืืืจืฉ ืขืื ืืขืื ืืฉืงืขื.
ืืืืื ืืชืืจืช โโืืช ืื ืืืื ื, ืืืื ืืื ืืืจืฆืื ืืชืืฉืืช. ืื ืืชื ืืื ืืื ืื ืฉื ืขืืืืืช ืขืืืื ืขืืืจ ืื ืฉืื ืืคืืชืื ืฉื ืืฉืืืื ืืจืฆืืฃ ืฉืื ื.
ืืจืืจ ืฉืื ืฉืืคืืจ ืืืคื ืืงืฉื ืืืชืจ ืืืืชืจ. ืืืกืชืืืืช ืขื ืืืจืฃ ืืื, ืืชื ืืืื ืืืืื ืฉืืฉ ืืคืชื ืืื ืืืจืฆืื ืืชืืฉืืช ืืืชืื ืืืืืื ืืืืื ืืฆืืืช. ืขืืืจ ืฆืืืช ืฉื ืฉื ื ืื ืฉืื, ืืฉืงืขื ืฉื 50 ืืื ืืคืืชืื ืืืืช ืืืืืืืจืื ืคื ืืืืช ืืื ืจืขืืื ืืื ืื ื. ืืื ืืื ืขื ืืืช, ืขืืืจ ืฆืืืช ืืืื, ืื ืืขืฉืืช Continuous Integration ืืืื ืื ืื ืจืขืืื ืจืข, ืื ืืขืืืช ืืื ืืืจืฆืื, ืชืืงืื ืชืงืฉืืจืช ืืื'. ืื ืืืงื ืขืื ืืืชืจ ืืื.
ืืชืืื ื ืขื ืืจืขืืื ืฉืฆืจืื ืืืืืืฆืื ืื ืื ืฉืื ืืงืจืื, ืื ืขืืฉืื ืืขืืืืช ืืืชืขืฆืืื. ืืื ืื ืฉืื ืื ืขืืฉืื ืืืืืืฆืื. ืืื, ืื ืืืชื ืืขืืืช ืืืืช ืขื ืืืืืืฆืื.
- ืืืืืืฆืื ืืื ืืงืจื. ืืืืจ ืืช ืืื ืืืื ืื ืฉื ืืืืื.
- ืืฉืื ืืืืข ืืืืืืืฆืื, ืื ืฉืื ืขืืฉืื ืืขืืืืช.
- ืืคืขืืื ืื ืืืื ืขืฆืื ืืขืฉืืช ืืืืืืฆืื, ืื ืืื ืขืืื ืืื. ืืื ืืฉืคืจ ืืฉืื ืืืจ, ืืื ืื ืืฉืืืื ืืจืฆืืฃ ืืื?
ืืื ืืฉ ืื ืกืืืืกืืืงื: ืฉืืืืืช ื ืชืคืกืืช ื-20% ืืืืืืืืื. ืืื ืื ืืืื ืฉืืืคืชืืื ืฉืื ื ืืืชืืื ืงืื ืืฆืืจื ืืจืืขื. ืืกืืื ืืื ืืื ืฉืืคืชืืื ืืืืืื ืฉืื ืื ืืขืฉื ืืขืืช ืืืฉืื, ืืื ืื ืชืืืืจ ืืคืืชืื, ืืื ืชืืชืคืก ืขื ืืื ืืืืงืืช ืืืืืืืืืช. ืืืชืื ืืื, ืืคืชืืื ืืืืืื ืืืฉืงืืข ืืืชืจ ืืื ืืืชืืืช ืงืื ืืืืจืื ืืขื ืืื ืื, ืืืงืื ืืจืืฅ ืืืืืืง ืืฉืื ืืงืืื.
ืชืจืืื ืืื ืืืจืฆืื ืจืฆืืคื. ืืื ืืืืื.
ืืื, ื ืืงืืืื ื ืกืืจืื ืื ืจืง ื ืืชื ืืืืืช ืืขืืืื ืืขืฆืื, ืืื ืื ืืืจ ืืืืขืืช ืืชืืื ืืช
AppsConf ืืขืืืจืช ืืืืจืื ืืืืื ืขืืืจื ื ืืืืื ืืฉืืขืืชืืื. ื ืืชื ืืืขืจืื ืืช ืืฉืืืืช ืืืชืืขืืช ืฉื ืชืืื ืืช ืืื ืก ืืื ืืคื ื ืืฉืืื ืืืื ืืื ืื . ืืืคืจืืื ืืืืขื ื-Infospace ืืชืืจืืืื 22-23 ืืืคืจืื.
ืืงืืจ: www.habr.com