Π‘Π±ΠΎΡ€ΠΊΠ° Π½Π° Android ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Android, Π΄ΠΎΡ€ΠΈ ΠΈ Π½Π°ΠΉ-малкият, Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ късно трябва Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΡ€Π΅Π΄ срСдата Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ОсвСн Android SDK, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ послСдната вСрсия Π½Π° Kotlin, Gradle, platform-tools, build-tools. И Π°ΠΊΠΎ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° всички Ρ‚Π΅Π·ΠΈ зависимости сС Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Android Studio IDE, Ρ‚ΠΎ Π½Π° CI/CD ΡΡŠΡ€Π²ΡŠΡ€Π° всяко ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π΅ Π² Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΈΠ΅. И Π°ΠΊΠΎ Π² ΡƒΠ΅Π± Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° със срСдата стана стандарт с Docker, Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ Π΄Π° Π½Π΅ ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ Π² Android Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°...

Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ знаят ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Docker - Π°ΠΊΠΎ трябва Π΄Π° Π³ΠΎ обясним Π² Π½Π°ΠΉ-простия Π²ΠΈΠ΄, Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ инструмСнт Π·Π° създаванС Π½Π° Ρ‚.Π½Π°Ρ€. β€žΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈβ€œ, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ ядро Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма ΠΈ нСобходимият Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ софтуСр, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°ΠΌΠ΅ ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅ΠΌ, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ срСдата. Какво Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‰Π΅ ΠΈΠΌΠ° Π² нашия ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ сС опрСдСля Π² Dockerfile, ΠΊΠΎΠΉΡ‚ΠΎ слСд Ρ‚ΠΎΠ²Π° сС ΡΡŠΠ±ΠΈΡ€Π° Π² ΠΎΠ±Ρ€Π°Π·, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС стартира навсякъдС ΠΈ ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π° свойства Π½Π° идСмпотСнтност.

ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° инсталиранС ΠΈ основитС Π½Π° Docker са Π΄ΠΎΠ±Ρ€Π΅ описани Π½Π° нСговия официалния сайт. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, забягвайки ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΠΏΡ€Π΅Π΄, Π΅Ρ‚ΠΎ какъв Dockerfile ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅

# Π’.ΠΊ. основным инструмСнтом для сборки 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 опрСдСля Ρ‚Π°Π³ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° нашия ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΈ вСрсията ΠΌΡƒ. Π’ нашия случай Π³ΠΎ Π½Π°Ρ€Π΅ΠΊΠΎΡ…ΠΌΠ΅ android-build, Π° Π² вСрсията посочихмС комбинация ΠΎΡ‚ вСрсиитС Π½Π° gradle, android-sdk ΠΈ platform-tools. Π’ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΈΡ‚Π΅ Π΅Ρ‚Π°ΠΏΠΈ Ρ‰Π΅ Π½ΠΈ бъдС ΠΏΠΎ-лСсно Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ нуТния ΠΎΠ±Ρ€Π°Π· ΠΏΠΎ ΠΈΠΌΠ΅Ρ‚ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Ρ‚Π°ΠΊΠ°Π²Π° β€žΠ²Π΅Ρ€ΡΠΈΡβ€œ.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ нашия ΠΎΠ±Ρ€Π°Π· Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΊΠ°Ρ‡ΠΈΠΌ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° docker push Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΈΠ»ΠΈ частСн Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΠΌ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ машини.

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ. Π—Π° Ρ†Π΅Π»Ρ‚Π° Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° изпълнявамС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

docker run --rm -v "$PWD":/home/gradle/ -w /home/gradle android-build:5.4.1-28-27 gradle assembleDebug

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° тя:

docker run β€” самата ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° стартиранС Π½Π° ΠΎΠ±Ρ€Π°Π·Π°
-rm β€” ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ слСд спиранС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ‚ΠΎΠΉ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ създадСно ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚Π° си
-v "$PWD":/home/gradle/ β€” ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° с нашия Android ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° /home/gradle/
-w /home/gradle β€” Π·Π°Π΄Π°Π²Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° дирСктория Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
android-build:5.4.1-28-27 β€” ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° нашия ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅
gradle assembleDebug β€” самата ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅, която ΡΡŠΠ±ΠΈΡ€Π° нашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Ако всичко сС Π½Π°Ρ€Π΅Π΄ΠΈ, слСд няколко сСкунди/ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° Π΅ΠΊΡ€Π°Π½Π° си Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ BUILD SUCCESSFUL Π·Π° 8ΠΌ 3с! А Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° app/build/output/apk Ρ‰Π΅ сС Π½Π°ΠΌΠΈΡ€Π° сглобСното ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

По ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° gradle β€” Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π΄Π° стартиратС тСстовС ΠΈ Ρ‚.Π½. ΠžΡΠ½ΠΎΠ²Π½ΠΎΡ‚ΠΎ прСдимство Π΅, Ρ‡Π΅ ΠΏΡ€ΠΈ нСобходимост ΠΎΡ‚ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³Π° машина, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС притСсняватС Π·Π° инсталиранСто Π½Π° цялата срСда, Π° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ нСобходимия ΠΎΠ±Ρ€Π°Π· ΠΈ Π΄Π° стартиратС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π² Π½Π΅Π³ΠΎ.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π½Π΅ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ всяко ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‚ Π΅Π΄Π½Π° страна Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° идСнтичност Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ нСзависимо ΠΎΡ‚ мСстополоТСниСто, Π° ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° страна всСки ΠΏΡŠΡ‚ трябва Π΄Π° сС изтСглят всички зависимости ΠΈ Π΄Π° сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° цСлият ΠΊΠΎΠ΄ ΠΎΡ‚Π½ΠΎΠ²ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ понякога ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Π½Π΅ΠΌΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π°, освСн обикновСния "студСн" старт, ΠΈΠΌΠ°ΠΌΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° стартиранС Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ с Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ‚.Π½. "кСш", ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° ~/ .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 потрСбитСля.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster