Android เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชฎเชพเชเซ เชชเซเชฐเซเชเซเชเซเช เชตเชฟเชเชธเชพเชตเชคเซ เชตเชเชคเซ, เชธเซเชฅเซ เชจเชพเชจเซ เชชเชฃ, เชตเชนเซเชฒเชพ เช
เชฅเชตเชพ เชชเชเซเชจเชพ เชธเชฎเชฏเชฎเชพเช เชคเชฎเชพเชฐเซ เชตเชฟเชเชพเชธเชจเชพ เชตเชพเชคเชพเชตเชฐเชฃ เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเชตเซ เชชเชกเชถเซ. เชเชจเซเชกเซเชฐเซเชเชก SDK เชเชชเชฐเชพเชเชค, เชเซเชเชฒเชฟเชจ, เชเซเชฐเซเชกเชฒ, เชชเซเชฒเซเชเชซเซเชฐเซเชฎ-เชเซเชฒเซเชธ, เชฌเชฟเชฒเซเชก-เชเซเชฒเซเชธเชจเซเช เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ เชนเซเชตเซเช เชเชฐเซเชฐเซ เชเซ. เช
เชจเซ เชเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชจเชพ เชฎเชถเซเชจ เชชเชฐ เช เชฌเชงเซ เชจเชฟเชฐเซเชญเชฐเชคเชพเช เชเชจเซเชกเซเชฐเซเชเชก เชธเซเชเซเชกเชฟเชฏเซ IDE เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเซเชเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช เชนเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ เชชเชเซ CI/CD เชธเชฐเซเชตเชฐ เชชเชฐ, เชฆเชฐเซเช เช
เชชเชกเซเช เชฎเชพเชฅเชพเชจเซ เชฆเซเชเชพเชตเซ เชฌเชจเซ เชถเชเซ เชเซ. เช
เชจเซ เชเซ เชตเซเชฌ เชกเซเชตเชฒเชชเชฎเซเชจเซเชเชฎเชพเช, เชกเซเชเชฐ เช เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ เชธเชฎเชธเซเชฏเชพเชจเซเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชเชเซเชฒ เชฌเชจเซ เชเชฏเซเช เชเซ, เชคเซ เชชเชเซ เชเชจเซเชกเซเชฐเซเชเชก เชกเซเชตเชฒเชชเชฎเซเชจเซเชเชฎเชพเช เชคเซเชจเซ เชธเชพเชฅเซ เชธเชฎเชพเชจ เชธเชฎเชธเซเชฏเชพเชจเซ เชนเชฒ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเซเชฎ เชจ เชเชฐเชตเซ ...
เชเซเช เชเชพเชฃเชคเชพ เชจเชฅเซ เชเซ เชกเซเชเชฐ เชถเซเช เชเซ, เชคเซเชจเซ เชธเชฐเชณ เชฐเซเชคเซ เชเชนเซเช เชคเซ, เชคเซ เชเชนเซเชตเชพเชคเชพ เชฌเชจเชพเชตเชตเชพเชจเซเช เชเช เชธเชพเชงเชจ เชเซ. "เชเชจเซเชเซเชจเชฐ" เชเซ เชเซเชฎเชพเช เชจเซเชฏเซเชจเชคเชฎ OS เชเชฐเซเชจเชฒ เชนเซเชฏ เชเซ เช
เชจเซ เชธเซเชซเซเชเชตเซเชฐเชจเซ เชเชฐเซเชฐเซ เชธเซเช เชนเซเชฏ เชเซ เชเซเชจเซ เชเชชเชฃเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ เชเชพเชณเชตเชฃเซ เชเชฐเชคเซ เชตเชเชคเซ เชเชชเชฃเซ เชเชเซเชเซเช เชคเซเชฏเชพเช เชเซเช เชตเซ เชถเชเซเช เชเซเช. เช
เชฎเชพเชฐเชพ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชฌเชฐเชพเชฌเชฐ เชถเซเช เชนเชถเซ เชคเซ เชกเซเชเชฐเชซเชพเชเชฒเชฎเชพเช เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เชชเชเซ เชเช เชเชตเซ เชเชฎเซเชเชฎเชพเช เชเชธเซเชฎเซเชฌเชฒ เชฅเชพเชฏ เชเซ เชเซ เชเชฎเซ เชคเซเชฏเชพเช เชฒเซเชจเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ เช
เชจเซ เชคเซเชฎเชพเช เชเชกเซเชฎเซเชชเซเชเซเชจเซเชธเซ เชชเซเชฐเซเชชเชฐเซเชเซเช เชนเซเชฏ เชเซ.
เชกเซเชเชฐเชจเซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เช
เชจเซ เชฎเซเชณเชญเซเชค เชฌเชพเชฌเชคเซ เชคเซเชฎเชจเชพเชฎเชพเช เชธเชเชชเซเชฐเซเชฃ เชฐเซเชคเซ เชตเชฐเซเชฃเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ
# ะข.ะบ. ะพัะฝะพะฒะฝัะผ ะธะฝััััะผะตะฝัะพะผ ะดะปั ัะฑะพัะบะธ Android-ะฟัะพะตะบัะพะฒ ัะฒะปัะตััั Gradle,
# ะธ ะฟะพ ััะฐััะปะธะฒะพะผั ััะตัะตะฝะธั ะพะฑััะพััะตะปัััะฒ ะตััั ะพัะธัะธะฐะปัะฝัะน Docker-ะพะฑัะฐะท
# ะผั ัะตัะธะปะธ ะทะฐ ะพัะฝะพะฒั ะฒะทััั ะธะผะตะฝะฝะพ ะตะณะพ ั ะฝัะถะฝะพะน ะฝะฐะผ ะฒะตััะธะตะน Gradle
FROM gradle:5.4.1-jdk8
# ะะฐะดะฐะตะผ ะฟะตัะตะผะตะฝะฝัะต ั ะปะพะบะฐะปัะฝะพะน ะฟะฐะฟะบะพะน ะดะปั Android SDK ะธ
# ะฒะตััะธัะผะธ ะฟะปะฐััะพัะผั ะธ ะธะฝััััะผะตะฝัะฐัะธั
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip"
ANDROID_HOME="/usr/local/android-sdk"
ANDROID_VERSION=28
ANDROID_BUILD_TOOLS_VERSION=28.0.3
# ะกะพะทะดะฐะตะผ ะฟะฐะฟะบั, ัะบะฐัะธะฒะฐะตะผ ััะดะฐ SDK ะธ ัะฐัะฟะฐะบะพะฒัะฒะฐะตะผ ะฐัั
ะธะฒ,
# ะบะพัะพััะน ะฟะพัะปะต ัะฑะพัะบะธ ัะดะฐะปัะตะผ
RUN mkdir "$ANDROID_HOME" .android
&& cd "$ANDROID_HOME"
&& curl -o sdk.zip $SDK_URL
&& unzip sdk.zip
&& rm sdk.zip
# ะ ัะปะตะดัััะธั
ัััะพัะบะฐั
ะผั ัะพะทะดะฐะตะผ ะฟะฐะฟะบั ะธ ัะตะบััะพะฒัะต ัะฐะนะปั
# ั ะปะธัะตะฝะทะธัะผะธ. ะะฐ ะพั. ัะฐะนัะต Android ะฝะฐะฟะธัะฐะฝะพ ััะพ ะผั
# ะผะพะถะตะผ ะบะพะฟะธัะพะฒะฐัั ััะธ ัะฐะนะปั ั ะผะฐัะธะฝ ะณะดะต ะฒัััะฝัั ััะธ
# ะปะธัะตะฝะทะธะธ ะฟะพะดัะฒะตัะดะธะปะธ ะธ ััะพ ะฐะฒัะพะผะฐัะธัะตัะบะธ
# ะธั
ัะณะตะฝะตัะธัะพะฒะฐัั ะฝะตะปัะทั
&& mkdir "$ANDROID_HOME/licenses" || true
&& echo "24333f8a63b6825ea9c5514f83c2829b004d1" > "$ANDROID_HOME/licenses/android-sdk-license"
&& echo "84831b9409646a918e30573bab4c9c91346d8" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
# ะะฐะฟััะบะฐะตะผ ะพะฑะฝะพะฒะปะตะฝะธะต SDK ะธ ัััะฐะฝะพะฒะบั build-tools, platform-tools
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"
เช เชฎเซ เชคเซเชจเซ เช เชฎเชพเชฐเชพ Android เชชเซเชฐเซเชเซเชเซเช เชธเชพเชฅเซ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชธเชพเชเชตเซเช เชเซเช เช เชจเซ เชเชฆเซเชถ เชธเชพเชฅเซ เชเชจเซเชเซเชจเชฐ เชฌเชจเชพเชตเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเช เชเซเช
docker build -t android-build:5.4-28-27 .
เชชเซเชฐเชพเชฎเซเชเชฐ -t เช เชฎเชพเชฐเชพ เชเชจเซเชเซเชจเชฐเชจเซเช เชเซเช เช เชฅเชตเชพ เชจเชพเชฎ เชธเซเช เชเชฐเซ เชเซ, เชเซเชฎเชพเช เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชคเซเชจเซเช เชจเชพเชฎ เช เชจเซ เชธเชเชธเซเชเชฐเชฃ เชนเซเชฏ เชเซ. เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชฎเซ เชคเซเชจเซ เชเชจเซเชกเซเชฐเซเชเชก-เชฌเชฟเชฒเซเชก เชเชนเซเช เชเซเช เช เชจเซ เชตเชฐเซเชเชจเชฎเชพเช เช เชฎเซ เชเซเชฐเซเชกเชฒ, เชเชจเซเชกเซเชฐเซเชเชก-เชเชธเชกเซเชเซ เช เชจเซ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ-เชเซเชฒเซเชธ เชตเชฐเซเชเชจเชจเชพ เชธเชเชฏเซเชเชจเชจเซ เชเชฒเซเชฒเซเช เชเชฐเซเชฏเซ เชเซ. เชญเชตเชฟเชทเซเชฏเชฎเชพเช, เชเชตเชพ "เชธเชเชธเซเชเชฐเชฃ" เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เช เชฎเชจเซ เชเซเชเชคเซ เชเชฌเซ เชถเซเชงเชตเชพเชจเซเช เช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชธเชฐเชณ เชฌเชจเชถเซ.
เชเชธเซเชฎเซเชฌเชฒเซ เชชเซเชฐเซเชฃ เชฅเชฏเชพ เชชเชเซ, เช เชฎเซ เช เชฎเชพเชฐเซ เชเชฌเซเชจเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช, เช เชฎเซ เชคเซเชจเซ เชเชฆเซเชถ เชธเชพเชฅเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชถเชเซเช เชเซเช เชกเซเชเชฐ เชฆเชฌเชพเชฃ เชคเซเชจเซ เช เชจเซเชฏ เชฎเชถเซเชจเซ เชชเชฐ เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ เชเชพเชนเซเชฐ เช เชฅเชตเชพ เชเชพเชจเชเซ เชเชฎเซเช เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชพเชฒเซ เชเช เชชเซเชฐเซเชเซเชเซเช เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชฌเชจเชพเชตเซเช. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชชเซเชฐเซเชเซเชเซเช เชธเชพเชฅเซเชจเชพ เชซเซเชฒเซเชกเชฐเชฎเชพเช, เชเชฆเซเชถ เชเชฒเชพเชตเซ
docker run --rm -v "$PWD":/home/gradle/ -w /home/gradle android-build:5.4.1-28-27 gradle assembleDebug
เชเชพเชฒเซ เชเชพเชฃเซเช เชเซ เชคเซเชจเซ เช เชฐเซเชฅ เชถเซเช เชเซ:
เชกเซเชเชฐ เชฐเชจ - เชเชฎเซเช เชฒเซเชจเซเช เชเชฎเชพเชจเซเชก เชชเซเชคเซ
-เชเชฐเชเชฎ - เชฎเชคเชฒเชฌ เชเซ เชเชจเซเชเซเชจเชฐ เชฌเชเชง เชเชฐเซเชฏเชพ เชชเชเซ, เชคเซ เชคเซเชจเชพ เชเซเชตเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฌเชจเชพเชตเซเชฒ เชฆเชฐเซเช เชตเชธเซเชคเซเชจเซ เชเชพเชขเซ เชจเชพเชเซ เชเซ
-v "$PWD":/home/gradle/ - เช
เชฎเชพเชฐเชพ เชเชจเซเชกเซเชฐเซเชเชก เชชเซเชฐเซเชเซเชเซเช เชธเชพเชฅเซ เชตเชฐเซเชคเชฎเชพเชจ เชซเซเชฒเซเชกเชฐเชจเซ เชเชจเซเชเซเชจเชฐเชจเชพ เชเชเชคเชฐเชฟเช เชซเซเชฒเซเชกเชฐ /home/gradle/ เชชเชฐ เชฎเชพเชเชจเซเช เชเชฐเซ เชเซ.
-w /home/gradle - เชเชจเซเชเซเชจเชฐเชจเซ เชเชพเชฐเซเชฏเชเชพเชฐเซ เชจเชฟเชฐเซเชฆเซเชถเชฟเชเชพ เชธเซเช เชเชฐเซ เชเซ
android-build:5.4.1-28-27 - เช
เชฎเชพเชฐเชพ เชเชจเซเชเซเชจเชฐเชจเซเช เชจเชพเชฎ เชเซ เช
เชฎเซ เชเชเชคเซเชฐเชฟเชค เชเชฐเซเชฏเซเช เชเซ
gradle เชเชธเซเชฎเซเชฌเชฒ เชกเซเชฌเช - เชตเชพเชธเซเชคเชตเชฟเช เชเชธเซเชฎเซเชฌเชฒเซ เชเซเชฎ เชเซ เช
เชฎเชพเชฐเชพ เชชเซเชฐเซเชเซเชเซเชเชจเซ เชเชธเซเชฎเซเชฌเชฒ เชเชฐเซ เชเซ
เชเซ เชฌเชงเซเช เชฌเชฐเชพเชฌเชฐ เชฅเช เชเชพเชฏ, เชคเซ เชฅเซเชกเซเช เชธเซเชเชจเซเชก/เชฎเชฟเชจเชฟเชเชฎเชพเช เชคเชฎเซ เชคเชฎเชพเชฐเซ เชธเซเชเซเชฐเซเชจ เชชเชฐ เชเชเชเช เชเชตเซเช เชเซเชถเซ 8m 3s เชฎเชพเช เชธเชซเชณ เชฌเชจเชพเชตเซ! เช เชจเซ เชเชช/เชฌเชฟเชฒเซเชก/เชเชเชเชชเซเช/apk เชซเซเชฒเซเชกเชฐเชฎเชพเช เชเช เชเชธเซเชฎเซเชฌเชฒ เชเชชเซเชฒเชฟเชเซเชถเชจ เชนเชถเซ.
เช เช เชฐเซเชคเซ, เชคเชฎเซ เช เชจเซเชฏ เชเซเชฐเซเชกเชฒ เชเชพเชฐเซเชฏเซ เชเชฐเซ เชถเชเซ เชเซ - เชชเซเชฐเซเชเซเชเซเช เชคเชชเชพเชธเซ, เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซ, เชตเชเซเชฐเซ. เชฎเซเชเซเชฏ เชซเชพเชฏเชฆเซ เช เชเซ เชเซ เชเซ เชเชชเชฃเซ เชเซเช เช เชจเซเชฏ เชฎเชถเซเชจ เชชเชฐ เชชเซเชฐเซเชเซเชเซเช เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ เช เชฎเชพเชฐเซ เชธเชฎเชเซเชฐ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฟเชเชคเชพ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เช เชจเซ เชคเซ เชเชฐเซเชฐเซ เชเชฎเซเช เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพ เช เชจเซ เชคเซเชฎเชพเช เชฌเชฟเชฒเซเชก เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซเช เชนเชถเซ.
เชเชจเซเชเซเชจเชฐ เชเซเชเชชเชฃ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชคเซเช เชจเชฅเซ, เช เชจเซ เชฆเชฐเซเช เชเชธเซเชฎเซเชฌเชฒเซเชจเซ เชถเชฐเซเชเชคเชฅเซ เชฒเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เชเช เชคเชฐเชซ, เชเชธเซเชฎเซเชฌเชฒเซเชจเซ เชเชณเชเชจเซ เชฌเชพเชเชฏเชงเชฐเซ เชเชชเซ เชเซ, เชชเชเซ เชญเชฒเซ เชคเซ เชเซเชฏเชพเชเชฅเซ เชฒเซเชเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ, เชฌเซเชเซ เชคเชฐเชซ, เชฆเชฐเซเช เชตเชเชคเซ เชคเชฎเชพเชฐเซ เชฌเชงเซ เชจเชฟเชฐเซเชญเชฐเชคเชพเช เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพเชจเซ เชนเซเชฏ เชเซ. เช เชจเซ เชคเชฎเชพเชฎ เชเซเชกเชจเซ เชซเชฐเซเชฅเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเซ, เช เชจเซ เชเชฎเชพเช เชเซเชฏเชพเชฐเซเช เชจเซเชเชงเชชเชพเชคเซเชฐ เชธเชฎเชฏ เชฒเชพเชเซ เชถเชเซ เชเซ. เชคเซเชฅเซ, เชธเชพเชฎเชพเชจเซเชฏ "เช เชเชกเชพ" เชชเซเชฐเชพเชฐเชเชญ เชเชชเชฐเชพเชเชค, เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชเชนเซเชตเชพเชคเชพ เชธเชพเชเชตเชคเซ เชตเชเชคเซ เชฌเชฟเชฒเซเชก เชถเชฐเซ เชเชฐเชตเชพเชจเซ เชตเชฟเชเชฒเซเชช เชเซ. โcacheโ, เชเซเชฏเชพเช เชเชชเชฃเซ ~/.gradle เชซเซเชฒเซเชกเชฐเชจเซ เชซเชเซเชค เชชเซเชฐเซเชเซเชเซเชเชจเชพ เชตเชฐเซเชเชฟเชเช เชซเซเชฒเซเชกเชฐเชฎเชพเช เชเซเชชเชฟ เชเชฐเซเชจเซ เชธเชพเชเชตเซเช เชเซเช, เช เชจเซ เชเชเชพเชฎเซ เชฌเชฟเชฒเซเชกเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เช เชฎเซ เชคเซเชจเซ เชชเชพเชเซเช เชเชชเซเช เชเซเช. เช เชฎเซ เชฌเชงเซ เชจเชเชฒ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชจเซ เช เชฒเช เชธเซเชเซเชฐเชฟเชชเซเชเชฎเชพเช เชเชธเซเชกเซ เช เชจเซ เชฒเซเชจเซเช เชเชฎเชพเชจเซเชก เชชเซเชคเซ เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชตเชพ เชฒเชพเชเซเชฏเซ
docker run --rm -v "$PWD":/home/gradle/ -w /home/gradle android-build:5.4.1-28-27 /bin/bash -c "./pre.sh; gradle assembleDebug; ./post.sh"
เชชเชฐเชฟเชฃเชพเชฎเซ, เช เชฎเชพเชฐเซ เชธเชฐเซเชฐเชพเชถ เชชเซเชฐเซเชเซเชเซเช เชฌเชฟเชฒเซเชก เชเชพเชเชฎ เชเชฃเซ เชตเชเชค เชเชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ (เชชเซเชฐเซเชเซเชเซเช เชชเชฐเชจเซ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชเชงเชพเชฐเซ, เชชเชฐเชเชคเซ เชธเชฐเซเชฐเชพเชถ เชชเซเชฐเซเชเซเชเซเช เชเชฎ 1 เชฎเชฟเชจเชฟเชเชจเซ เชฌเชฆเชฒเซ 5 เชฎเชฟเชจเชฟเชเชฎเชพเช เชเชธเซเชฎเซเชฌเชฒ เชฅเชตเชพ เชฒเชพเชเซเชฏเซ).
เช เชฌเชงเซเช เชซเชเซเชค เชคเซเชฏเชพเชฐเซ เช เช เชฐเซเชฅเชชเซเชฐเซเชฃ เชฌเชจเซ เชเซ เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชคเชฎเชพเชฐเซเช เชชเซเชคเชพเชจเซเช เชเชเชคเชฐเชฟเช CI/CD เชธเชฐเซเชตเชฐ เชนเซเชฏ, เชเซเชจเซ เชคเชฎเซ เชเชพเชคเซ เช เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ. เชชเชฐเชเชคเซ เชนเชตเซ เชเชฃเซ เชฌเชงเซ เชเซเชฒเชพเชเชก เชธเซเชตเชพเช เชเซ เชเซเชฎเชพเช เช เชฌเชงเซ เชธเชฎเชธเซเชฏเชพเชเชจเซเช เชจเชฟเชฐเชพเชเชฐเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชคเชฎเชพเชฐเซ เชคเซเชจเชพ เชตเชฟเชถเซ เชเชฟเชเชคเชพ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เช เชจเซ เชเชฐเซเชฐเซ เชฌเชฟเชฒเซเชก เชเซเชฃเชงเชฐเซเชฎเซ เชชเชฃ เชชเซเชฐเซเชเซเชเซเช เชธเซเชเชฟเชเชเซเชธเชฎเชพเช เชธเซเชชเชทเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชซเชเซเชค เชจเซเชเชงเชพเชฏเซเชฒเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เช เชธเชฐเซเชตเซเชฎเชพเช เชญเชพเช เชฒเช เชถเชเซ เชเซ.
เชถเซเช เชคเชฎเซ เชคเชฎเชพเชฐเซ CI/CD เชธเชฟเชธเซเชเชฎ เชเชจ-เชนเชพเชเชธ เชฐเชพเชเซ เชเซ เช เชฅเชตเชพ เชคเซเชคเซเชฏ เชชเชเซเชท เชธเซเชตเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ?
-
เชเชเชคเชฐเชฟเช เชธเชฐเซเชตเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ
-
เช เชฎเซ เชฌเชพเชนเซเชฏ เชธเซเชตเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช
-
เช เชฎเซ CI/CD เชจเซ เชเชชเชฏเซเช เชเชฐเชคเชพ เชจเชฅเซ
-
เช เชจเซเชฏ
42 เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเช เชฎเชค โโเชเชชเซเชฏเซ. 16 เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฆเซเชฐ เชฐเชนเซเชฏเชพ.
เชธเซเชฐเซเชธ: www.habr.com