рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ Android рдкреНрд░рдХрд▓реНрдк рддрдпрд╛рд░ рдХрд░рдгреЗ

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдПрдЦрд╛рджрд╛ рдкреНрд░рдХрд▓реНрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛рдирд╛, рдЕрдЧрджреА рд▓рд╣рд╛рди рдкреНрд░рдХрд▓реНрдк, рд▓рд╡рдХрд░рдЪ рдХрд┐рдВрд╡рд╛ рдирдВрддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕ рд╕рд╛рдореЛрд░реЗ рдЬрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. Android SDK рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, Kotlin, Gradle, рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо-рдЯреВрд▓реНрд╕, рдмрд┐рд▓реНрдб-рдЯреВрд▓реНрд╕рдЪреА рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреА рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдгрд┐ рдЬрд░ рд╡рд┐рдХрд╕рдХрд╛рдЪреНрдпрд╛ рдорд╢реАрдирд╡рд░ рд╣реЗ рд╕рд░реНрд╡ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ Android рд╕реНрдЯреБрдбрд┐рдУ рдЖрдпрдбреАрдИ рд╡рд╛рдкрд░реВрди рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реЛрдбрд╡рд▓реЗ рдЧреЗрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рд╕реАрдЖрдп / рд╕реАрдбреА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░, рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрдпрддрди рдбреЛрдХреЗрджреБрдЦреАрдордзреНрдпреЗ рдмрджрд▓реВ рд╢рдХрддреЗ. рдЖрдгрд┐ рдЬрд░ рд╡реЗрдм рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрдордзреНрдпреЗ, рдбреЙрдХрд░ рдкрд░реНрдпрд╛рд╡рд░рдгрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдмрдирд▓реЗ рдЖрд╣реЗ, рддрд░ рдордЧ Android рд╡рд┐рдХрд╛рд╕рд╛рдордзреНрдпреЗ рддреНрдпрд╛рдЪ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд╛ рдХрд░реВ рдирдпреЗ ...

рдЬреНрдпрд╛рдВрдирд╛ рдбреЙрдХрд░ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА - рдЬрд░ рддреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЕрд╕реЗрд▓ рддрд░ рд╣реЗ рддрдерд╛рдХрдерд┐рдд рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдЖрд╣реЗ. "рдХрдВрдЯреЗрдирд░" рдЬреНрдпрд╛рдд рдХрд┐рдорд╛рди 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 рдЖрдордЪреНрдпрд╛ рдХрдВрдЯреЗрдирд░рдЪрд╛ рдЯреЕрдЧ рдХрд┐рдВрд╡рд╛ рдирд╛рд╡ рд╕реЗрдЯ рдХрд░рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рд╣рд╕рд╛ рддреНрдпрд╛рдЪреЗ рдирд╛рд╡ рдЖрдгрд┐ рдЖрд╡реГрддреНрддреА рдЕрд╕рддреЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЖрдореНрд╣реА рддреНрдпрд╛рд▓рд╛ android-build рдореНрд╣рдгрддреЛ рдЖрдгрд┐ рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЖрдореНрд╣реА gradle, android-sdk рдЖрдгрд┐ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо-рдЯреВрд▓реНрд╕ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреЗ рд╕рдВрдпреЛрдЬрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ. рднрд╡рд┐рд╖реНрдпрд╛рдд, рдЕрд╢реА тАЬрдЖрд╡реГрддреНрддреАтАЭ рд╡рд╛рдкрд░реВрди рдирд╛рд╡рд╛рдиреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдкреНрд░рддрд┐рдорд╛ рд╢реЛрдзрдгреЗ рдЖрдкрд▓реНрдпрд╛рд╕рд╛рдареА рд╕реЛрдкреЗ рд╣реЛрдИрд▓.

рдмрд┐рд▓реНрдб рдкрд╛рд╕ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рдЖрдордЪреА рдкреНрд░рддрд┐рдорд╛ рд╕реНрдерд╛рдирд┐рдХрд░рд┐рддреНрдпрд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ, рдЖрдореНрд╣реА рдХрдорд╛рдВрдбрд╕рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реВ рд╢рдХрддреЛ рдбреЙрдХрд░ рдкреБрд╢ рдЗрддрд░ рдорд╢реАрдирд╡рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд┐рдВрд╡рд╛ рдЦрд╛рдЬрдЧреА рдкреНрд░рддрд┐рдорд╛ рднрд╛рдВрдбрд╛рд░рд╛рдд.

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди, рдПрдХ рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рдХрд▓реНрдк рддрдпрд╛рд░ рдХрд░реВрдпрд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ, рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛

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

рдЪрд▓рд╛ рдпрд╛рдЪрд╛ рдЕрд░реНрде рдХрд╛рдп рддреЗ рд╢реЛрдзреВрдпрд╛:

рдбреЙрдХрд░ рд░рди - рдЗрдореЗрдЬ рд▓рд╛рдБрдЪ рдХрдорд╛рдВрдб рд╕реНрд╡рддрдГрдЪ
-рдЖрд░рдПрдо - рдореНрд╣рдгрдЬреЗ рдХрдВрдЯреЗрдирд░ рдерд╛рдВрдмрд╡рд▓реНрдпрд╛рдирдВрддрд░, рддреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдЖрдпреБрд╖реНрдпрд╛рдд рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рд╣рдЯрд╡рддреЗ
-v "$PWD":/home/gradle/ - рдЖрдордЪреНрдпрд╛ Android рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╕рд╣ рд╡рд░реНрддрдорд╛рди рдлреЛрд▓реНрдбрд░ рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдлреЛрд▓реНрдбрд░ /home/gradle/ рд╡рд░ рдорд╛рдЙрдВрдЯ рдХрд░рддреЗ
-w /home/gradle - рдХрдВрдЯреЗрдирд░рдЪреА рдХрд╛рд░реНрдпрд░рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗрдЯ рдХрд░рддреЗ
android-build:5.4.1-28-27 - рдЖрдореНрд╣реА рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдХрдВрдЯреЗрдирд░рдЪреЗ рдирд╛рд╡
gradle assembleDebug - рд╕реНрд╡рддрдГрдЪ рдмрд┐рд▓реНрдб рдЯреАрдо, рдЬреЛ рдЖрдордЪрд╛ рдкреНрд░рдХрд▓реНрдк рдПрдХрддреНрд░ рдХрд░рддреЛ

рдЬрд░ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдареАрдХ рдЭрд╛рд▓реЗ, рддрд░ рдХрд╛рд╣реА рд╕реЗрдХрдВрдж / рдорд┐рдирд┐рдЯрд╛рдВрдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕реЗрд▓ 8m 3s рдордзреНрдпреЗ рдпрд╢рд╕реНрд╡реА рдмрдирд╡рд╛! рдЖрдгрд┐ рдЕреЕрдк/рдмрд┐рд▓реНрдб/рдЖрдЙрдЯрдкреБрдЯ/рдПрдкреАрдХреЗ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдЕрд╕реЗрдВрдмрд▓ рдХреЗрд▓реЗрд▓реЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрд╕реЗрд▓.

рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рддреБрдореНрд╣реА рдЗрддрд░ рдЧреНрд░реЗрдбрд▓ рдХрд╛рд░реНрдпреЗ рдХрд░реВ рд╢рдХрддрд╛ - рдкреНрд░рдХрд▓реНрдк рддрдкрд╛рд╕рд╛, рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡рд╛ рдЗ. рдореБрдЦреНрдп рдлрд╛рдпрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдорд╢реАрдирд╡рд░ рдкреНрд░рдХрд▓реНрдк рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдВрдкреВрд░реНрдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХрд╛рд│рдЬреА рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдордзреНрдпреЗ рдмрд┐рд▓реНрдб рдЪрд╛рд▓рд╡рдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ.

рдХрдВрдЯреЗрдирд░ рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╕реЗрдВрдмреНрд▓реА рд╕реНрдХреНрд░реЕрдЪрдордзреВрди рд▓реЙрдиреНрдЪ рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреА рдПрдХреАрдХрдбреЗ рдЕрд╕реЗрдВрдмреНрд▓реАрдЪреНрдпрд╛ рдУрд│рдЦреАрдЪреА рд╣рдореА рджреЗрддреЗ рддреЗ рдХреЛрдареЗ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдпрд╛рдЪреА рдкрд░реНрд╡рд╛ рди рдХрд░рддрд╛, рджреБрд╕рд░реАрдХрдбреЗ, рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рдЕрд╡рд▓рдВрдмрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓. рдЖрдгрд┐ рд╕рд░реНрд╡ рдХреЛрдб рдкреБрдиреНрд╣рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рд╛, рдЖрдгрд┐ рдпрд╛рд╕ рдХрдзреАрдХрдзреА рдмрд░рд╛рдЪ рд╡реЗрд│ рд▓рд╛рдЧреВ рд╢рдХрддреЛ. рдореНрд╣рдгреВрди, рдиреЗрд╣рдореАрдЪреНрдпрд╛ "рдХреЛрд▓реНрдб" рд╕реНрдЯрд╛рд░реНрдЯ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рддрдерд╛рдХрдерд┐рдд рд░рд╛рдЦрддрд╛рдирд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╕реЗрдВрдмреНрд▓реА рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ. "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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛