CI TeamCity - Android рдФрд░ UI рдкрд░реАрдХреНрд╖рдг рдХреА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TeamCity рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рддрд╛ рд╣реВрдВред

рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рднреА рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ (рдЬреЛ рдореБрдЭреЗ рдЕрдиреБрд╕рдВрдзрд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдорд┐рд▓рд╛) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдЪреАрдЬреЗрдВ рдЬреЛ рдиреМрд╕рд┐рдЦрд┐рдП рдкрд░реАрдХреНрд╖рдХ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИрдВред

рдЙрджреНрджреЗрд╢реНрдп:


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  • рдСрдЯреЛ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рдпреЛрдЬрдирд╛
  • UI рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдВ
  • рдбрд┐рдмрдЧ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдФрд░ рдмрд╛рдж рдХреА рдореИрдиреБрдЕрд▓ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдкреАрдХреЗ рдлрд╛рдЗрд▓реНрд╕ рдЬрд╛рд░реА рдХрд░рдирд╛
  • рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рднреА рд╡рд┐рдХрд╛рд╕ рджрд▓ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ

рдпреЛрдЬрдирд╛:


  1. рдЬрд╛рд╡рд╛ JDK рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
  2. Android SDK рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
  3. рдбреАрдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╢реНрд░реЗрдгреА рд╕реЗрдЯ рдХрд░рдирд╛
  4. Android рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛
  5. рдЯреАрдорд╕рд┐рдЯреА рд╕рд░реНрд╡рд░ рдФрд░ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  6. рдЯреАрдорд╕рд┐рдЯреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд╛рдкрдирд╛ тЖТ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдФрд░ рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдПрдкреАрдХреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдВ
  7. UI рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рдЪрд░рдгреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдореБрдЦреНрдп рд╣рд┐рд╕реНрд╕рд╛


1. рдЬрд╛рд╡рд╛ JDK рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЬрд╛рд╡рд╛

рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдзрд╛рд░рдгрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, JetBrains рдЕрдкрдиреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рд╡рд╛ рдПрд╕рдбреАрдХреЗ рдХреЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ: рд▓рд┐рдВрдХ

рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ : рд▓рд┐рдВрдХ

рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

  • JAVA_HOME- CI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SKD Java рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрдеред

    рдЙрджрд╛рд╣рд░рдг:

    C:\Java\jdk1.8.0_181
    рд╕рд┐рд╕реНрдЯрдо рдЪрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред
  • рдкрде - рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдПрд╕рдХреЗрдбреА рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрдеред

    рдЙрджрд╛рд╣рд░рдг:

    C:\Java\jdk1.8.0_181\bin
    рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред

рд╣рдо рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ:

рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реАрдПрдордбреА рдореЗрдВ рд╣рдо рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ: java -version

рдЬрд╛рд╡рд╛ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд╣реИ:



2. рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдЯреВрд▓реНрд╕ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рддреБрд░рдВрдд Android рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред

рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: рд▓рд┐рдВрдХ

рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

ANDROID_HOME
рдЙрджрд╛рд╣рд░рдг: C:\Users\1\AppData\Local\Android\Sdk

ANDROID_AVD_HOME
рдЙрджрд╛рд╣рд░рдг: C:\Users\1\.android\avd

рдкрде:

рдЙрджрд╛рд╣рд░рдг: C:\Users\1\AppData\Local\Android\Sdk\platform-tools\- рд╣рдорд╛рд░реЗ рдФрд░ рд╕реАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдХрдВрд╕реЛрд▓ рд╕реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред

рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: CMD рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ: adb --help

рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЙрдкрд▓рдмреНрдз рдХрдорд╛рдВрдб рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:



рдкрде:

рдЙрджрд╛рд╣рд░рдг: C:\Users\1\AppData\Local\Android\Sdk\emulator\- рд╣рдорд╛рд░реЗ рдФрд░ рд╕реАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдХрдВрд╕реЛрд▓ рд╕реЗ рдПрдореБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд░реЗрдВред

рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: рд╣рдо CMD рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВред emulator -version

рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ:



3. рдЧреНрд░реЗрдб рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЧреНрд░реИрдбрд▓

рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдХрдВрд╕реЛрд▓ рд╕реЗ рдбрд┐рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдПрдХ рдбрд╛рд▓ рджреЗрдВрдЧреЗред

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

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЧреНрд░реЗрдб 3.3ред рд▓рд┐рдВрдХ рдХрд░реЗрдВ ред

рд╣рдо рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

GRADLE_HOME- рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ CI рдЧреНрд░реИрдбрд▓ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

GRADLE_USER_HOME

рдЙрджрд╛рд╣рд░рдг: c:/gradle-cache

рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди, рд╕рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдЧреНрд░реИрдбрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛C:\Windows\System32\config\systemprofile\.gradleрдЖрдЧреЗ CI рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдкрде:

C:\Gradle\gradle-3.3\bin- рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЧреНрд░реИрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрдеред

рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: рд╣рдо CMD рдореЗрдВ рдЯрд╛рдЗрдк gradle -v

рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ:



4. рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рддреИрдпрд╛рд░реА

4.1ред рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВред

рдЧрддрд┐рд╡рд┐рдзрд┐ рдЯрд╛рдЗрдк рдХрд░реЗрдВ - рдиреАрдЪреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧрддрд┐рд╡рд┐рдзрд┐ред рдпрд╣ рдпреВрдЖрдИ рдЯреЗрд╕реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдж рдореЗрдВ рдХрд╛рдо рдЖрдПрдЧрд╛ред

4.2ред рдЧреНрд░реИрдбрд▓ рдбреЗрдорди рдХреЛ рдПрдХ рдирд┐рд░рдВрддрд░ рдЖрдзрд╛рд░ рдкрд░ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЧреНрд░реИрдбрд▓ рдбреЗрдорди CI рдореЗрдВ рд╕реНрдкреЙрди рди рдХрд░реЗ:

рдлрд╛рдЗрд▓ gradle.properties:
add org.gradle.daemon=false

4.3 рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ред рд╣рдо рдлрд╝рд╛рдЗрд▓ .gitignore(рдЖрдкрдХреЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП) рдореЗрдВ рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реАрд╕реАрдПрд╕ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╛рдЗрд▓реЗрдВ рди рдЫреЛрдбрд╝реА рдЬрд╛рдПрдВред 4.4ред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдХреАрд╕реНрдЯрд░ (рдпрд╛ рдореМрдЬреВрджрд╛ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ) рдмрдирд╛рдПрдВред рд▓рд┐рдВрдХ рдХрд░реЗрдВ ред

.gradle
.idea
/build/
local.properties





4.5ред рдХрд┐рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдЧреНрд░реИрдбрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рд╣рдо рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдПрдкреАрдХреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХреЗрдВред

рдЙрджрд╛рд╣рд░рдг:

android{  
    ... //  
    signingConfigs {
        release {
            storeFile file("keystorefile.jks") //        
            storePassword "Password" //  
            keyAlias "android" // keyAlias,     
            keyPassword "Password" //  APK
        }
    }

    ... //  
     buildTypes {
        release {
            ... //  
            signingConfig signingConfigs.release //  APK
        }
    }
} 

4.6ред рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗред CMD рдореЗрдВ рджрд░реНрдЬ рдХрд░реЗрдВ:

cd < >

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: C:\Users\1\Documents\GitHub\Command2

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЬрд╛рдПрдВред

рджрд░реНрдЬ рдХрд░реЗрдВ: рд╣рдо

gradlew assembleDebug

рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ред

рдЕрдЧрд░ рд╕рдм рдареАрдХ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо BUILD SUCCESSFUL рдорд┐рд▓рддрд╛ рд╣реИред



рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ: app\build\outputs\apk\debug

рдЗрд╕рдореЗрдВ рдПрдХ рддрд╛рдЬрд╛ рдПрдкреАрдХреЗ рдлрд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдЬрд╛рдВрдЪ рд▓реЗрдВред

4.7ред рд╣рдо рдпрд╣ рднреА рдЬрд╛рдВрдЪреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдПрд╕рдбреАрдХреЗ рдЙрдкрдХрд░рдг рдФрд░ рдПрд╡реАрдбреА рдкреНрд░рдмрдВрдзрдХ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╣реИрдВред

4.7.1ред рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдПрдВред рдЖрдк рдмреЗрд╢рдХ рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдерд╛рдкрд┐рдд UI рд╢реЗрд▓ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдирд╛ рдПрдХ рдкрд╛рдк рд╣реИред

рдЙрдкрдХрд░рдг тЖТ рдПрд╡реАрдбреА рдкреНрд░рдмрдВрдзрдХ:



рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдПрд╕рдбреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрдо рд╕реЗ рдХрдо рд╣рдорд╛рд░реЗ рдПрд╕рдбреАрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

4.7.2ред рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдпрд╛ред рдЖрдЗрдП рдХрдВрд╕реЛрд▓ рд╕реЗ рдЗрд╕рдХреЗ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рд╣рдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ:

start /min emulator -avd < >

рдЙрджрд╛рд╣рд░рдг:

start /min emulator -avd Pixel_2_API_25

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо /minрдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рд╡рд╣ рд╕реАрдПрдордбреА рдореЗрдВ рдирдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ред
рдбрд┐рд╡рд╛рдЗрд╕ рдЪрд▓ рд░рд╣рд╛ рд╣реИ:



4.7.3ред рд╣рдо рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдПрдкреАрдХреЗ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо CMD рдореЗрдВ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ:

adb install <path_to_apk>

рдЙрджрд╛рд╣рд░рдг:

adb install C:\Users\1\Documents\GitHub\Command2\app\release\app-release.apk

рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ:



4.7.4ред рд╣рдо рд╕реНрдерд╛рдкрд┐рдд APK рдХреЗ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо CMD рдореЗрдВ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ:

adb shell monkey -p < > -c android.intent.category.LAUNCHER 1

рдЙрджрд╛рд╣рд░рдг:

adb shell monkey -p com.panarik.command -c android.intent.category.LAUNCHER 1

рдЖрд╡реЗрджрди рд╢реБрд░реВ:



4.7.5ред рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреВрд░рд╕реНрде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GitHub рдХреЛред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рдПрдЧреА:

Git BASH рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдпрджрд┐ рд╣рдо Git VCS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рд▓рд┐рдВрдХ рдХрд░реЗрдВ ред

рд╣рдо рд░рд┐рдореЛрдЯ рд░реЗрдкреЛ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВред рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд░реЗрдВ Git BASH:

git clone < .git>

рдЙрджрд╛рд╣рд░рдг:

git clone https://github.com/panarik/Command2.git

рд╣рдо рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:



TeamCity рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рд╣рдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдЕрднреНрдпрд╛рд╕ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рддреБрд░рдВрдд TeamCity рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рддрд╛рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЯреАрдорд╕рд┐рдЯреА рдореЗрдВ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рдкрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдмрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПред

5. TeamCity Server рдФрд░ Build Agent рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рдореИрдВ рдЕрдзрд┐рд╖реНрдард╛рдкрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рд╡рд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╣реИред рдЯреАрдорд╕рд┐рдЯреА рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ I рдореЗрдВ рдЧреИрд░-рдорд╛рдирдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ, рддрд╛рдХрд┐ рдкреЛрд░реНрдЯ рд╕реНрдХреИрди рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛред

6. рдЯреАрдордХрд┐рдЯреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ тЖТ рдмрд┐рд▓реНрдб

рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рдЖрдкрдХреЛ рдмрд╕ рдПрдкреАрдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкрде рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

рдЙрджрд╛рд╣рд░рдг:

app\build\outputs\apk\release\app-release.apk



6.1ред рдЯреАрдорд╕реАрдЯреА рд╡реАрд╕реАрдПрд╕ рд░реВрдЯреНрд╕ рд╕реЗрдЯ рдХрд░рдирд╛

рд╕рдм рдХреБрдЫ рдорд╛рдирдХ рд╣реИред рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╣рдо Git рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдореЛрдЯ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХред рдЙрджрд╛рд╣рд░рдг:

https://github.com/panarik/Command2.git



6.2ред TeamCity Build рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

рдПрдХ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдк рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдкреАрдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣рдо рдЧреНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдлрд╝реАрд▓реНрдб рдЧреНрд░реИрдбрд▓ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ: -

clean build assembleDebug --no-daemon(-рдиреЛ-рдбреЗрдорди рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдФрд░ рдпрд╣ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣рдордиреЗ рдЕрдиреБрднрд╛рдЧ 4.2 рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛)



рд░рди рд░рди рдкрд░, рд╣рдореЗрдВ рдПрдкреАрдХреЗ рдорд┐рд▓рддрд╛ рд╣реИред

7. UI рдСрдЯреЛрдЯреЗрд╕реНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рдЪрд░рдгреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣рдореЗрдВ

рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдорд┐рд▓рд╛, рдЕрд░реНрдерд╛рддреН, рдпреВрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реЙрдиреНрдЪред

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

7.1ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдореБрд▓реЗрдЯрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдк рдмрдирд╛рдПрдВред

рдЖрдк BATnik рдХреЛ URL рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ BAT_FILESBATniks рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдХреЗ рд╕рд╛рде TeamCity рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдмрдирд╛рдпрд╛ : рд╣рдо



рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдореБрд▓реЗрдЯрд░ рд╕реНрдЯрд╛рд░реНрдЯ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг:

start /min "emulator" /D "C:\Users\1\AppData\Local\Android\Sdk\emulator" emulator.exe -avd Pixel_2_API_25 -no-snapshot-save -no-boot-anim
рдПрдХ рдмрдВрдж рд╕рд╛рдЗрдЯ рдкрд░ рдХрдорд╛рдВрдб рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА: рд▓рд┐рдВрдХ ред

7.2ред рдПрдореБрд▓реЗрдЯрд░ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдк рдмрдирд╛рдПрдВред рдЖрдк рддреБрд░рдВрдд .BAT рдореЗрдВ рдкрд╣рд▓рд╛ рдЪрд░рдг рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ред

рдРрд╕реА рдЯреАрдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЬрд╛рд╕реВрд╕реА рдХрд░рддрд╛ рд╣реИ:

adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'

рдпреВрдЖрдИ рд╕реЗ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:



рдСрдл рд╕рд╛рдЗрдЯ рдкрд░ рд╕рднреА рдЯреАрдореЛрдВ рдХреА рд╕реВрдЪреА: рд▓рд┐рдВрдХред

7.3ред рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рднреАред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХрдорд╛рдВрдб:

gradlew connectedDebugAndroidTest

7.4ред рд╣рдо рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХрдорд╛рдВрдб:

adb -s emulator-5554 emu kill

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реБрдИред

рдЖрдк рдПрдХ рдЕрд▓рдЧ рдЪрд░рдг рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рднреА рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдпреЗ рдзрдиреНрдпрд╡рд╛рдж!

рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рд╣реИ, рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рд╣реИ, рддреЛ рдореИрдВ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

All Articles