рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рд╕реНрд╡-рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдХ рдХреЛ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕реНрд╡рд╛рдпрддреНрдд рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЕрдиреБрднрд╡реА рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕рд╕реЗ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдирд┐рдкрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕рдлрд▓ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рддреБрд░рдВрдд рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯрд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд░рд┐рдореЛрдЯ рд▓реЙрдиреНрдЪ рдкрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреА рдкрдбрд╝реА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдХреЛрдИ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЯрд╛рд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░:
- рдкрд░реАрдХреНрд╖рдг (рдУрдВ) рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛рддреЗ рд╣реИрдВ
- рдЯреАрдорд╕рд┐рдЯреА рд╕рд░реНрд╡рд░ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ
- рдХреЗрд╡реАрдПрдо рдФрд░ рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдмрд┐рдпрди рдкрд░ рд╕рд░реНрд╡рд░
рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреБрд░рдВрдд рдЕрд╕реНрд╡реАрдХрд░рдг рдЬрд╣рд╛рдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдУрдПрд╕, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╢реЗрд▓ рд╕реЗрдЯ рдХрд░рдирд╛ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрдЯреАрдорд╕рд┐рдЯреА рдПрдЬреЗрдВрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЬрд╛рд╡рд╛ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдмрд╛рдд рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдирдирд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ 3 рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдереАрдВ: рдкрд░реАрдХреНрд╖рдг рдЦреБрдж, рдПрдВрдбреНрд░реЙрдЗрдб рдЯреВрд▓ рдФрд░ рдЯреАрдорд╕рд┐рдЯреА рдПрдЬреЗрдВрдЯред рдореИрдВрдиреЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреЗрд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг 8 рдкрд░ рд░реЛрдХ рджрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдХрдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ рдФрд░ рд╕рдВрдШрд░реНрд╖ рд╣реЛрдВрдЧреЗ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдЬрд╛рд╡рд╛ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдмрд┐рдпрди рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ webupd8team рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (Google рдмрд╣реБрдд рддреЗрдЬ рд╣реИ) рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
sudo apt-get install oracle-java8-installer sudo apt-get install oracle-java8-set-default
рдЕрдЧрд▓рд╛, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдПрдЬреЗрдВрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдмрд╛рдХреА рд╕рдм рдХреБрдЫред рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред
sudo useradd -d /home/tc_agent -s /bin/bash -m tc_agent sudo passwd tc_agent
рдПрдЬреЗрдВрдЯ рд╡рд┐рддрд░рдг рдХреЛ рдЖрдкрдХреА рдЯреАрдо рдХреЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдПрдЬреЗрдВрдЯ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдКрдкрд░реА рджрд╛рдИрдВ рдУрд░
рд╕реНрдерд╛рдкрд┐рдд рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ
рдХрд░реЗрдВ ред рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ (рдореИрдВ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ -
/home/tc_agent
)ред рдЕрдЧрд▓рд╛, рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВ:
sudo chmod +x /home/tc_agent/BuildAgent/bin/*
рдпрджрд┐ рдЖрдкрдХреЗ рджрд▓ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдЬреЗрдВрдЯ рдкреБрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрднреА рднреА рдЖрд╕рд╛рди рд╣реИред рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЯреИрдм рдЦреЛрд▓реЗрдВ,
рдПрдЬреЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ... рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
рд╣рдо рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдиреЗ рд░рд┐рдореЛрдЯ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рдмрди рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕рдореЗрдВ рдПрдЬреЗрдВрдЯ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдмрдирд╛рдПрдБ:
cd /home/tc_agent/BuildAgent/conf cp buildAgent.dist.properties buildAgent.properties nano buildAgent.properties
serverUrl=
рд╕рд░реНрд╡рд░ рдХреЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдкрддреЗ рдХреЗ
serverUrl=
, рдФрд░ рдПрдЬреЗрдВрдЯ
name=
рдЕрдиреВрдареЗ рдирд╛рдо рдХреЗ
name=
serverUrl=
ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдПрдЬреЗрдВрдЯ рд╣реИрдВ рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ (9090) рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░
ownPort=
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╣рдо рдХрдорд╛рдВрдб
/home/tc_agent/BuildAgent/bin/agent.sh start
ред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯ рдХреЛ
рдЕрдирдзрд┐рдХреГрдд рдЯреИрдм рдкрд░ рджреЗрдЦреЗрдВрдЧреЗред рд╣рдо рдЕрдзрд┐рдХреГрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдЬреЗрдВрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде
/etc/init.d/teamcity_agent
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ:
sudo chmod +x /etc/init.d/teamcity_agent
рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд▓рд╛рдЗрди
/etc/init.d/teamcity_agent start
рдХреЛ рдлрд╝рд╛рдЗрд▓
/etc/rc.local
/etc/init.d/teamcity_agent start
рдХрд░реЗрдВред
рдирд┐рдпрдВрддреНрд░рдг рд░рд┐рдмреВрдЯ, рдПрдЬреЗрдВрдЯ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
Android рдПрд╕рдбреАрдХреЗ рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
Android sdk рдЯреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓) рдФрд░ рдЗрд╕реЗ рдЗрдЪреНрдЫрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдирдкреИрдХ рдХрд░реЗрдВред рднрд╡рд┐рд╖реНрдп рдХреЗ AVD рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ (рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдореЗрд░реЗ рд▓рд┐рдП, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдиреЗ рдореБрдЦреНрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ
/var,
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЬреЛрдбрд╝рд╛ рд╣реИ
/var,
рдФрд░ рдореИрдВ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдбрд╛рд▓реВрдВрдЧрд╛ред рдЕрдЧрд▓рд╛, рд╣рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрд╡рд╛рдореА рдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЕрдЧрд▓реЗ рдЪрд░рдг рдЙрд╕рдХреЗ рддрд╣рдд рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╣реЛрддреЗ рд╣реИрдВред
sudo chown tc_agent -R /var/opt/android-sdk sudo mkdir /var/opt/.android sudo chown tc_agent /var/opt/.android
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЬреЛрдбрд╝реЗрдВред рд╕рдВрдкрд╛рджрди рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓
/home/tc_agent/.bash_profile
рдЦреЛрд▓реЗрдВ:
export ANDROID_HOME=/var/opt/android-sdk export ANDROID_AVD_HOME=/var/opt/.android/avd export PATH=$ANDROID_HOME/platform-tools:$PATH export PATH=$ANDROID_HOME/tools:$PATH
рд╣рдо рд░рд┐рдмреВрдЯ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐
рдПрдЬреЗрдВрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЯреИрдм рдкрд░ рдЯреАрдордХрд┐рдЯреА рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЪрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред
рд╣рдо sdkmanager рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
$ANDROID_HOME/tools/bin/sdkmanager --list
рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЙрдкрд▓рдмреНрдз рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЛ
Exception in thread "main" java.lang.NoClassDefFoundError
рдЬреИрд╕реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рдпрд╛рд╕
рдХрд░реЗрдВ ред
рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдФрд░ рдЫрд╡рд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
$ANDROID_HOME/tools/bin/sdkmanager emulator platform-tools tools $ANDROID_HOME/tools/bin/sdkmanager 'system-images;android-25;google_apis;x86'
AVD рдмрдирд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ
'system-images;android-25;google_apis;x86'
(рдПрдВрдбреНрд░реЙрдЗрдб 7.1.1) рдХреА рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреА, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдПрдВред рдореИрдВ avdmanager рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдореИрдВ рдЗрд╕реЗ рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рд░рд╛рд╢рд┐ рдкрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛:
$ANDROID_HOME/tools/bin/avdmanager create avd -n avd_name -k "system-images;android-25;google_apis;x86"
рд╣рдо рдирд╛рдо рдФрд░ рдореВрд▓ рдЫрд╡рд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА sdkmanager рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдпрджрд┐ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдЖрдИ, рддреЛ
-v
рдзреНрд╡рдЬ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗрдВред
рд╣рдо рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрд╕рдбреАрдХреЗ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдПрдореБрд▓реЗрдЯрд░, рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо, рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо-рдЯреВрд▓реНрд╕, рд╕рд┐рд╕реНрдЯрдо-рдЗрдореЗрдЬ рдлреЛрд▓реНрдбрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрдирд╛рдП, рдмрд╛рдХреА рд╕рдм sdkmanager рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдмрдирд╛рдП рдЧрдП рдереЗред рдЕрдЧрд▓рд╛, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдРрд╕рд╛ рдЬрд╡рд╛рдм рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
$ANDROID_HOME/emulator/emulator -accel-check accel: 0 KVM (version 12) is installed and usable. accel
рдпрджрд┐
/dev/kvm
рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВ:
addgroup kvm usermod -a -G kvm tc_agent chown root:kvm /dev/kvm
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдЕрднреА рднреА QEMU рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
sudo apt-get install qemu-kvm
рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдБ рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рдХреА рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЖрдВрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, vnc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рдЪрд▓рд╛рдПрдВ:
$ANDROID_HOME/emulator/emulator @avd_name
рдирд┐рдореНрди рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП:
рдкрд░реАрдХреНрд╖рдг рд░рди рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдо
-no-window
рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВрдЧреЗред
TeamCity рдореЗрдВ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рд╢реБрд░реВрдЖрдд рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рддреЗ рд╣реБрдП рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ рдкрд╣реБрдБрдЪ рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ 4 рдЪрд░рдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдорд┐рд▓рд╛ред
1. рдПрдореБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рдирд╛
nohup /var/opt/android-sdk/emulator/emulator @avd_name -no-snapshot-save -no-boot-anim -no-window -snapshot clean_snap_1 > start_emulator.log 2>&1&
рдЪреВрдВрдХрд┐ рдПрдореБрд▓реЗрдЯрд░ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ "рд▓реЙрдХ" рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдиреЛрд╣ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдирдЯрд╛рдЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЖрдк рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЖрдк рддрдп рдХрд░рддреЗ рд╣реИрдВ)ред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдореБрд▓реЗрдЯрд░ рд▓реЙрдЧ рдХреЛ
start_emulator.log
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
start_emulator.log
ред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдл рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдпрд╛ (
рдпрд╣ рдХреИрд╕реЗ
рдХрд░реЗрдВ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ) рдФрд░
-no-snapshot-save
рд╕реНрд╡рд┐рдЪ рдХреЛ рдЬреЛрдбрд╝рд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рди рдХрд┐рдпрд╛ рдЬрд╛рдПред
2. рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкреНрд░рддреАрдХреНрд╖рд╛
wait-for-device
рд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд▓реВрдк рдореЗрдВ рд╣рдо рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм
sys.boot_completed
рд╡реЗрд░рд┐рдПрдмрд▓ 1ред
3. рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИ, рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
./gradlew clean connectedAndroidTest
4. рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдмрдВрдж рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдЕрдм рддрдХ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рд╣реИред
kill -s 2 `pgrep qemu-system`
рд▓реЗрдХрд┐рди рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдИрдбреА рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдЬрдм рд╣рдо рдХрдИ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЧрд▓рддреА рд╕реЗ рдЧрд▓рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ "рдорд╛рд░" рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рд╕рдм, рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рдореИрдВ рдЦрд╝реБрд╢реА рд╕реЗ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реВрдВрдЧрд╛ред