рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдЖрдЬ, рдзреЗрд░реИрдЬрд╕реЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рджрдирд╣рд░реВ рдЯреЛрд▓реАрд╣рд░реВрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдиреНрдЫрдиреНред рд╕рдлрд▓ рдЯреЛрд▓реА рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд░реНрддрд╣рд░реВ рд╕рд░рд▓ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдПрдХрдЪреЛрдЯрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдХреЛрдб рд▓реЗрдЦреНрдиреБрднрдПрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

  1. рдХрд╛рдо рдЧрд░реНрджрдЫред
  2. рдпрд╕рд▓реЗ рддрдкрд╛рдИрдХрд╛ рд╕рд╣рдХрд░реНрдореАрд╣рд░реВрд▓реЗ рд▓реЗрдЦреЗрдХреЛ рдХреЛрдб рд╕рд╣рд┐рдд рдХреЗрд╣рд┐ рдкрдирд┐ рддреЛрдбреНрджреИрдиред

рдпрджрд┐ рджреБрдмреИ рд╕рд░реНрддрд╣рд░реВ рдкреВрд░рд╛ рднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВ рд╕рдлрд▓рддрд╛рдХреЛ рдмрд╛рдЯреЛрдорд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫред рдпреА рд╕рд░реНрддрд╣рд░реВ рд╕рдЬрд┐рд▓реИ рдЬрд╛рдБрдЪреНрди рд░ рд▓рд╛рднрджрд╛рдпрдХ рдорд╛рд░реНрдЧрдмрд╛рдЯ тАЛтАЛрд╡рд┐рдЪрд▓рд┐рдд рдирд╣реБрди, рд╣рд╛рдореА рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд╕рд╛рде рдЖрдПрдХрд╛ рдЫреМрдВред

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

  • рдкреНрд░рд┐рдп рдорд╛рдирд┐рд╕рд╣рд░реВред рдХреБрдиреИ рдкрдирд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдХреЛ рдХрд╛рдордХреЛ рдПрдХ рдШрдгреНрдЯрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рд░реНрднрд░рдХреЛ рдХрд╛рдордХреЛ рдПрдХ рдШрдгреНрдЯрд╛ рднрдиреНрджрд╛ рдорд╣рдБрдЧреЛ рд╣реБрдиреНрдЫред
  • рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рдЧрд▓реНрддреА рдЧрд░реНрдЫрдиреНред рддрд╕рд░реНрде, рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВ рдЙрддреНрдкрдиреНрди рд╣реБрди рд╕рдХреНрдЫ рдЬрдм рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЧрд▓рдд рд╢рд╛рдЦрд╛рдорд╛ рдЪрд▓рд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ рд╡рд╛ рдкрд░реАрдХреНрд╖рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЧрд▓рдд рдХрдорд┐рдЯ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред
  • рдорд╛рдирд┐рд╕рд╣рд░реВ рдЕрд▓реНрдЫреА рдЫрдиреНред рд╕рдордп-рд╕рдордпрдорд╛, рдЬрдм рдо рдХреБрдиреИ рдХрд╛рдо рдкреВрд░рд╛ рдЧрд░реНрдЫреБ, рд╡рд┐рдЪрд╛рд░ рдЙрдареНрдЫ: "рдХреЗ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдЫ? рдореИрд▓реЗ рджреБрдИ рд▓рд╛рдЗрди рд▓реЗрдЦреЗрдВ - рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрджрдЫ! рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рддрдкрд╛рдИрд╣рд░реБ рдордзреНрдпреЗ рдХреЛрд╣реА рдХреЛрд╣реА рдкрдирд┐ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ рдпрд╕реНрддреИ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдЫрдиреНред рддрд░ рддрдкрд╛рдИрд▓реЗ рд╕рдзреИрдВ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдПрднрд┐рдЯреЛ рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ рдХрд╕рд░реА рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рд▓рд╛рдЧреВ рд░ рд╡рд┐рдХрд╕рд┐рдд рднрдпреЛ, рдХрд╕рд░реА рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рддрд┐ рджрд┐рди 0 рджреЗрдЦрд┐ 450 рдмрд┐рд▓реНрдбрдорд╛ рдЧрдП, рд░ рддреНрдпреЛ рдирд┐рд░реНрдорд╛рдг рдореЗрд╕рд┐рдирд╣рд░реВ рджрд┐рдирдХреЛ 200 рдШрдгреНрдЯрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реБрдиреНрдЫрдиреН, рдирд┐рдХреЛрд▓рд╛рдИ рдиреЗрд╕реНрдЯреЗрд░реЛрдн рднрдиреНрдЫрдиреН (nnesterov) CI/CD рдПрдиреНрдбреНрд░реЛрдЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдмреИ рд╡рд┐рдХрд╛рд╕рд╡рд╛рджреА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдорд╛ рдПрдХ рд╕рд╣рднрд╛рдЧреА рд╣реЛред

рдХрдерд╛ рдПрдиреНрдбреНрд░реЛрдЗрдб рдХрдорд╛рдгреНрдбрдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ, рддрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ iOS рдорд╛ рдкрдирд┐ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреНред


рдПрдХ рдкрдЯрдХ, рдПрдХ рд╡реНрдпрдХреНрддрд┐рд▓реЗ Avito рдПрдиреНрдбреНрд░реЛрдЗрдб рдЯреЛрд▓реАрдорд╛ рдХрд╛рдо рдЧрд░реЗред рдкрд░рд┐рднрд╛рд╖рд╛ рдЕрдиреБрд╕рд╛рд░, рдЙрд╕рд▓рд╛рдИ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдмрд╛рдЯ рдХреЗрд╣рд┐ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди: рддреНрдпрд╣рд╛рдБ рдПрдХреАрдХрд░рдг рдЧрд░реНрди рдХреЛрд╣реА рдерд┐рдПрдиред

рддрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдвреНрдпреЛ, рдЕрдзрд┐рдХ рд░ рдЕрдзрд┐рдХ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрдпреЛ, рд░ рдЯреЛрд▓реА рддрджрдиреБрд╕рд╛рд░ рдмрдвреНрдпреЛред рдХреЗрд╣рд┐ рдмрд┐рдиреНрджреБрдорд╛, рдпреЛ рдЕрдзрд┐рдХ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рдХреЛрдб рдПрдХреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛред Git рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░рд┐рдпреЛред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

Git рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд░рд╛рдореНрд░рд░реА рдЬреНрдЮрд╛рдд рдЫ: рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рд╕рд╛рдЭрд╛ рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдЦрд╛ рдЫ, рд░ рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреА, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реБ рдПрдХ рдЕрд▓рдЧ рд╢рд╛рдЦрд╛ рдХрд╛рдЯреНрдЫрдиреН, рдпрд╕рд▓рд╛рдИ рдкреНрд░рддрд┐рдмрджреНрдз, рдзрдХреНрдХрд╛, рд░ рдЬрдм рддрд┐рдиреАрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдЦрд╛ рдорд╛ рдЖрдлреНрдиреЛ рдХреЛрдб рдорд░реНрдЬ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ, рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реНред рддрд╛рди рдЕрдиреБрд░реЛрдзред рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдЧрд░реНрди рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рдЫрд▓рдлрд▓ рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдкреЗрд╢ рдЧрд░реНтАНрдпреМрдВ, рддреНрдпреЛ рд╣реЛ, рд╕рд╣рдХрд░реНрдореАрд╣рд░реВрд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рдХреЛ рдХреЛрдб рдЬрд╛рдБрдЪ рд░ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдЪреЗрдХ

рддрдкрд╛рдИрдВрдХреЛ рдЖрдБрдЦрд╛рд▓реЗ рдХреЛрдб рд╣реЗрд░реНрджрд╛ рд░рд╛рдореНрд░реЛ рдЫ, рддрд░ рдкрд░реНрдпрд╛рдкреНрдд рдЫреИрдиред рддреНрдпрд╕рдХрд╛рд░рдг, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрд╛рдБрдЪрд╣рд░реВ рдкреЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдЫред

  • рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореА рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреМрдВ ARK рд╡рд┐рдзрд╛рдирд╕рднрд╛.
  • рдзреЗрд░реИ рдЬреБрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ.
  • рд╣рд╛рдореА рдХреЛрдб рдХрднрд░реЗрдЬ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдЫреМрдВ, рдХрд┐рдирдХрд┐ рд╣рд╛рдореА рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред

рдпреА рдЬрд╛рдБрдЪрд╣рд░реВ рдХрд╕рд░реА рдЪрд▓рд╛рдЙрдиреБ рдкрд░реНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, Avito рдорд╛ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЗрд░реМрдВред

рдпрд╕рд▓рд╛рдИ рдпрд╕рд░реА рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

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

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

рд╣рд╛рдореАрд▓рд╛рдИ рд╕рд╛рдБрдЪреНрдЪреИ рд░рд╛рддрдорд╛ рдЪреЗрдХрд╣рд░реВ рдЪрд▓рд╛рдЙрди рдорди рдкрд░реНрдпреЛ, рдХрд┐рдирдХрд┐ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╕рдордп рд░ рд╕рд░реНрднрд░рд╣рд░реВ рдЫрдиреН, рддрдкрд╛рдИрдВ рд╡рд░рд┐рдкрд░рд┐ рдШреБрдореНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд░, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдЬрдм рд╕реБрд╡рд┐рдзрд╛ рдХреЛрдб рд╡рд┐рдХрд╛рд╕рдорд╛ рдкреБрдЧреНрдЫ, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╕рдБрдЧ CI рд▓реЗ рдлреЗрд▓рд╛ рдкрд░реЗрдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдзреЗрд░реИ рдХрдо рдкреНрд░реЗрд░рдгрд╛ рд╣реБрдиреНрдЫред рдмрд┐рд╣рд╛рдирдХреЛ рд░рд┐рдкреЛрд░реНрдЯрдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХрд╛ рд╕рдмреИ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╣реЗрд░реНрджрд╛ рдХреБрдиреИ рджрд┐рди рдкрдЫрд┐ рд╕реБрдзрд╛рд░ рдЧрд░реНрдЫреБ рднрдиреЗрд░ рд╕рдордп-рд╕рдордпрдорд╛ рд╕реЛрдЪреНрдиреЗ рдЧрд░реЗрдХреЛ рдЫреБ, рдХрд┐рдирдХрд┐ рдЕрд╣рд┐рд▓реЗ рдЬрд┐рд░рд╛рдорд╛ рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рдирдпрд╛рдБ рдХрд╛рдо рдЫ рдЬреБрди рдо рд╕реБрд░реБ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рдпрджрд┐ рдЪреЗрдХрд╣рд░реВрд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рд░реЛрдХреНрдЫ рднрдиреЗ, рддреНрдпрд╣рд╛рдБ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░реЗрд░рдгрд╛ рдЫ, рдХрд┐рдирдХрд┐ рдЬрдмрд╕рдореНрдо рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд╣рд░рд┐рдпреЛ рд╣реБрдБрджреИрди, рдХреЛрдб рд╡рд┐рдХрд╛рд╕рдорд╛ рдЖрдЙрдБрджреИрди, рдЬрд╕рдХреЛ рдорддрд▓рдм рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реБрдиреЗ рдЫреИрдиред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд▓реЗ рдирд┐рдореНрди рд░рдгрдиреАрддрд┐ рд░реЛрдЬреНрдпреМрдВ: рд╣рд╛рдореА рд░рд╛рддрдорд╛ рдЕрдзрд┐рдХрддрдо рд╕рдореНрднрд╛рд╡рд┐рдд рдЪреЗрдХрд╣рд░реВ рдЪрд▓рд╛рдЙрдБрдЫреМрдВ, рд░ рддреАрдордзреНрдпреЗ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛, рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рдЬрд╛рдБрдЪрд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВред рддрд░ рд╣рд╛рдореА рддреНрдпрд╣рд╛рдБ рд░реЛрдХреНрджреИрдиреМрдВтАФрд╕рдорд╛рдирд╛рдиреНрддрд░рдорд╛, рд╣рд╛рдореАрд▓реЗ рдЪреЗрдХрд╣рд░реВрдХреЛ рдЧрддрд┐рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдЫреМрдВ рддрд╛рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрд░реЛрдз рдЪреЗрдХрд╣рд░реВ рддрд╛рдиреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рддреА рдореЛрдбрдмрд╛рдЯ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

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

рдЖрдзрд╛рд░рднреВрдд CI рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рд╣рд╛рдореАрд▓рд╛рдИ рджреБрдИ рджрд┐рди рд▓рд╛рдЧреНрдпреЛ (рдпрд╕рдкрдЫрд┐ рд╕рдордп рдЕрдиреБрдорд╛рди рдЕрдиреБрдорд╛рдирд┐рдд рдЫ, рд╕реНрдХреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдЫ)ред

рддреНрдпрд╕ рдкрдЫрд┐, рд╣рд╛рдореА рдердк рд╕реЛрдЪреНрди рдерд╛рд▓реНрдпреМрдВ - рдХреЗ рд╣рд╛рдореА рдкрдирд┐ рд╕рд╣реА рд░реВрдкрдорд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ? рдХреЗ рд╣рд╛рдореА рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд╕рд╣реА рд░реВрдкрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ?

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

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рдмреНрдпрд╛рд╕ рд▓рд┐рдкрд┐ рд▓реЗрдЦреНрдпреМрдВ premerge.sh:

#!/usr/bin/env bash

set -e

git fetch origin develop

git merge origin/develop

рдпрд╣рд╛рдБ рд╡рд┐рдХрд╛рд╕рдмрд╛рдЯ рд╕рдмреИ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдорд╛рддреНрд░ рддрд╛рдирд┐рдПрдХрд╛ рдЫрдиреН рд░ рд╣рд╛рд▓рдХреЛ рд╢рд╛рдЦрд╛рдорд╛ рдорд░реНрдЬ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рд╣рд╛рдореАрд▓реЗ premerge.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛рдИ рд╕рдмреИ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВрдорд╛ рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдХреЛ рд░реВрдкрдорд╛ рдердкреНрдпреМрдВ рд░ рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЪрд╛рд╣рдиреНрдЫреМрдВ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВ, рддреНрдпреЛ рд╣реЛред рдПрдХреАрдХрд░рдг.

рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЧрд░реНрди, рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреНрди, рд░ рдпреЛ рд▓рд┐рдкрд┐ рд▓реЗрдЦреНрди рддреАрди рджрд┐рди рд▓рд╛рдЧреНрдпреЛред

рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд╡рд┐рдХрд╛рд╕ рднрдпреЛ, рдЕрдзрд┐рдХ рд░ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрдпреЛ, рдЯреЛрд▓реА рдмрдвреНрдпреЛ, рд░ premerge.sh рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ рд╣рд╛рдореАрд▓рд╛рдИ рдирд┐рд░рд╛рд╢ рдЧрд░реНрди рдерд╛рд▓реНрдпреЛред рд╡рд┐рдХрд╛рд╕рдорд╛ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдерд┐рдП рдЬрд╕рд▓реЗ рдирд┐рд░реНрдорд╛рдгрд▓рд╛рдИ рддреЛрдбреНрдпреЛред

рдпреЛ рдХрд╕рд░реА рд╣реБрдиреНрдЫ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рджреБрдИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдПрдХреИрд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ A рд░ B рдорд╛ рдХрд╛рдо рдЧрд░реНрди рдерд╛рд▓реНрдЫрдиреНред рд╕реБрд╡рд┐рдзрд╛ A рдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХреЛ рд╕реБрд╡рд┐рдзрд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдБрджрдЫред answer() рд░, рдПрдХ рд░рд╛рдореНрд░реЛ рдХреЗрдЯрд╛ рд╕реНрдХрд╛рдЙрдЯ рдЬрд╕реНрддреИ, рдпрд╕рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрдЫред рдПрдХреИ рд╕рдордпрдорд╛, рд╕реБрд╡рд┐рдзрд╛ B рдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдЖрдлреНрдиреЛ рд╢рд╛рдЦрд╛рдорд╛ рдпрд╕ рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдирдпрд╛рдБ рдХрд▓ рдердкреНрдЫред

рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЖрдлреНрдиреЛ рдХрд╛рдо рдкреВрд░рд╛ рдЧрд░реНрдЫрдиреН рд░ рдПрдХреИ рд╕рдордпрдорд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓реНрдЫрдиреНред рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд╕реБрд░реБ рднрдПрдХрд╛ рдЫрдиреН, premerge.sh рд▓реЗ рдкрдЫрд┐рд▓реНрд▓реЛ рд╡рд┐рдХрд╛рд╕ рдЕрд╡рд╕реНрдерд╛рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рджреБрд╡реИ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ - рд╕рдмреИ рдЬрд╛рдБрдЪрд╣рд░реВ рд╣рд░рд┐рдпреЛ рдЫрдиреНред рддреНрдпрд╕ рдкрдЫрд┐, рд╕реБрд╡рд┐рдзрд╛ A рдХреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдорд░реНрдЬ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕реБрд╡рд┐рдзрд╛ B рдХреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдорд░реНрдЬ рдЧрд░рд┐рдПрдХреЛ рдЫ... рдмреВрдо! рд╡рд┐рдХрд╛рд╕ рдмреНрд░реЗрдХрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐рдирднрдиреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛрдбрд▓реЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╣реАрди рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдХрд▓ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдЬрдм рдпреЛ рд╡рд┐рдХрд╛рд╕ рд╣реБрди рдЧрдЗрд░рд╣реЗрдХреЛ рдЫреИрди, рдпреЛ рд╣реЛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдХреЛрдкред рд╕рдореНрдкреВрд░реНрдг рдЯреЛрд▓реАрд▓реЗ рдХреЗрд╣рд┐ рд╕рдВрдХрд▓рди рдЧрд░реНрди рд░ рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреЗрд╢ рдЧрд░реНрди рд╕рдХреНрджреИрдиред

рдпреЛ рдпрд╕реНрддреЛ рднрдпреЛ рдХрд┐ рдореИрд▓реЗ рдкреНрд░рд╛рдпрдГ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реЗ: рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдиреЗрдЯрд╡рд░реНрдХ, рдбрд╛рдЯрд╛рдмреЗрд╕ред рддреНрдпреЛ рд╣реЛ, рдЕрдиреНрдп рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рддреА рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рдХрдХреНрд╖рд╛рд╣рд░реВ рдореИрд▓реЗ рд▓реЗрдЦреЗрдХреЛ рдерд┐рдПрдБред рдпрд╕ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, рдореИрд▓реЗ рдЖрдлреВрд▓рд╛рдИ рдзреЗрд░реИ рдкрдЯрдХ рдпрд╕реНрддреИ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рднреЗрдЯреНрдЯрд╛рдПрдБред рдореИрд▓реЗ рдпреЛ рддрд╕реНрдмрд┐рд░ рдкрдирд┐ рдХреЗрд╣реА рдмреЗрд░ рдЭреБрдиреНрдбреНрдпрд╛рдПрдХреЛ рдерд┐рдПрдБред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдпреЛ рд╣рд╛рдореАрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рдирднрдПрдХреЛрд▓реЗ, рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рд░реЛрдХреНрдиреЗ рднрдиреНрдиреЗ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЦреЛрдЬреНрди рдерд╛рд▓реНрдпреМрдВред

рдХрд╕рд░реА рдмрд┐рдХрд╛рд╕ рдирд╣реЛрд╕реН

рдкрд╣рд┐рд▓реЛ рд╡рд┐рдХрд▓реНрдк: рд╡рд┐рдХрд╛рд╕ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджрд╛ рд╕рдмреИ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐, рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рд╕реБрд╡рд┐рдзрд╛ A рдХреЛ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╡рд┐рдХрд╛рд╕рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдкрд╣рд┐рд▓реЛ рд╣реЛ рднрдиреЗ, рд╕реБрд╡рд┐рдзрд╛ B рдХреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рдиреЗрдЫ, рд░, рддрджрдиреБрд╕рд╛рд░, рдЬрд╛рдБрдЪрд╣рд░реВ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдХреЛ рдХрд╛рд░рдг рдЕрд╕рдлрд▓ рд╣реБрдиреЗрдЫрдиреНред

рдпрд╕рд▓реЗ рдХрддрд┐ рд╕рдордп рд▓рд┐рдиреНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрди, рджреБрдИ PR рд╕рд╣рд┐рддрдХреЛ рдЙрджрд╛рд╣рд░рдгрд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╣рд╛рдореА рджреБрдИ PRs рдЦреЛрд▓реНрдЫреМрдВ: рджреБрдИ рдирд┐рд░реНрдорд╛рдг, рджреБрдИ рд░рди рдЪреЗрдХред рдкрд╣рд┐рд▓реЛ рдкреАрдЖрд░рд▓рд╛рдИ рд╡рд┐рдХрд╛рд╕рдорд╛ рдорд░реНрдЬ рдЧрд░реЗрдкрдЫрд┐, рджреЛрд╕реНрд░реЛрд▓рд╛рдИ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдХреБрд▓рдорд╛, рджреБрдИ PR рд▓рд╛рдИ рддреАрди рд░рди рдЪреЗрдХрд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫ: 2 + 1 = 3ред

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпреЛ рдареАрдХ рдЫред рддрд░ рд╣рд╛рдореАрд▓реЗ рддрдереНрдпрд╛рдЩреНрдХ рд╣реЗрд░реНрдпреМрдВ, рд░ рд╣рд╛рдореНрд░реЛ рдЯреЛрд▓реАрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд╕реНрдерд╛ 10 рдУрдкрди PRs рдерд┐рдпреЛ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЪреЗрдХрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдЧрддрд┐рдХреЛ рдпреЛрдЧ рд╣реЛ: 10 + 9 +... + 1 = 55ред рдЕрд░реНрдерд╛рддреН, 10 рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди PRs, рддрдкрд╛рдИрдВрд▓реЗ 55 рдкрдЯрдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд░ рдпреЛ рдПрдХ рдЖрджрд░реНрд╢ рд╕реНрдерд┐рддрд┐рдорд╛ рдЫ, рдЬрдм рд╕рдмреИ рдЬрд╛рдБрдЪрд╣рд░реВ рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рдкрд╛рд╕ рд╣реБрдиреНрдЫрдиреН, рдЬрдм рдпреА рджрд░реНрдЬрдирд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рднрдЗрд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛ рдХрд╕реИрд▓реЗ рдердк рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓реНрджреИрдиред

рдЖрдлреВрд▓рд╛рдИ рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрд╕рд▓реЗ "рдорд░реНрдЬ" рдмрдЯрдирдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрди рдкрд╣рд┐рд▓реЛ рд╣реБрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдХрд┐рдирдХрд┐ рдпрджрд┐ рдЫрд┐рдореЗрдХреАрд▓реЗ рдпреЛ рдЧрд░реНрдЫ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рд╕рдмреИ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдлреЗрд░рд┐ рдирд╣реБрдБрджрд╛рд╕рдореНрдо рдкрд░реНрдЦрдиреБрдкрд░реНрдиреЗрдЫ... рд╣реЛрдЗрди, рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдиред рдпрд╕рд▓реЗ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рдЧрдореНрднреАрд░ рд░реВрдкрдорд╛ рд╕реБрд╕реНрдд рдмрдирд╛рдЙрдБрдЫред

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

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдХреЗрд╡рд▓ рддреЗрд╕реНрд░реЛ рд╡рд┐рдХрд▓реНрдк рдмрд╛рдБрдХреА - рдмрд╛рдЗрдХред рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдХреЛрдб, рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рд╕реНрд░реЛрддрд╣рд░реВ рдмрд┐рдЯрдмрдХреЗрдЯ рд╕рд░реНрднрд░рдорд╛ рднрдгреНрдбрд╛рд░рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рддрджрдиреБрд╕рд╛рд░, рд╣рд╛рдореАрд▓реЗ рдмрд┐рдЯрдмрдХреЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдпреЛ рдкреНрд▓рдЧрдЗрдирд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдорд░реНрдЬрд┐рдЩ рдореЗрдХрд╛рдирд┐рдЬрдорд▓рд╛рдИ рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрдЫред рд╢реБрд░реБрд╡рд╛рдд рдорд╛рдирдХ рд╣реЛ: PR рдЦреБрд▓реНрдЫ, рд╕рдмреИ рд╕рдореНрдореЗрд▓рдирд╣рд░реВ рд╕реБрд░реБ рд╣реБрдиреНрдЫрдиреН, рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдкреВрд░рд╛ рднрдпреЛред рддрд░ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ рд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ "рдорд░реНрдЬ" рдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдкрдЫрд┐, рдкреНрд▓рдЧрдЗрди рдЬрд╛рдБрдЪрд╣рд░реВ рдХреБрди рд╡рд┐рдХрд╛рд╕ рд░рд╛рдЬреНрдп рд╡рд┐рд░реБрджреНрдз рдЪреЗрдХрд╣рд░реВ рдЪрд▓рд╛рдЗрдПрдХреЛ рдерд┐рдпреЛред рдпрджрд┐ рд╡рд┐рдХрд╛рд╕ рдирд┐рд░реНрдорд╛рдг рдкрдЫрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рдкреНрд▓рдЧрдЗрдирд▓реЗ рдпрд╕реНрддреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛рдорд╛ рдорд░реНрдЬ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИрдиред рдпрд╕рд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рднрд░реНрдЦрд░рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рдирд┐рд░реНрдорд╛рдгрд▓рд╛рдИ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд╕рд╛рде рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рддреНрдпрд╕реНрддрд╛ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдХреЛ рдХрд╛рд░рдг рдЕрд╕рдлрд▓ рд╣реБрдиреЗрдЫрдиреНред рддрджрдиреБрд╕рд╛рд░, рд╕реБрд╡рд┐рдзрд╛ B рдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдХреЛрдб рд╕рдЪреНрдпрд╛рдЙрдиреБрдкрд░реНрдиреЗрдЫ, рдЬрд╛рдБрдЪрд╣рд░реВ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд▓рдЧрдЗрдирд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗрдЫред

рдпреЛ рдкреНрд▓рдЧрдЗрди рд▓рд╛рдЧреВ рдЧрд░реНрдиреБ рдЕрдШрд┐, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдФрд╕рдд 2,7 рд╕рдореАрдХреНрд╖рд╛ рд░рди рдЧрд░реНрдпреМрдВред рдкреНрд▓рдЧрдЗрдирдХреЛ рд╕рд╛рде рддреНрдпрд╣рд╛рдБ 3,6 рд▓рдиреНрдЪрд╣рд░реВ рдерд┐рдПред рдпреЛ рд╣рд╛рдореАрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рдерд┐рдпреЛред

рдпреЛ рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рдпреЛ рдкреНрд▓рдЧрдЗрди рдПрдХ рдХрдордЬреЛрд░реА рдЫ: рдпреЛ рдХреЗрд╡рд▓ рдПрдХ рдкрдЯрдХ рдирд┐рд░реНрдорд╛рдг рдкреБрди: рд╕реБрд░реБ рд╣реБрдиреНрдЫред рдЕрд░реНрдерд╛рддреН, рддреНрдпрд╣рд╛рдБ рдЕрдЭреИ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдЫ рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддрд░ рдпрд╕рдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рдХрдо рдЫ, рд░ рд╣рд╛рдореАрд▓реЗ рдпреЛ рдЯреНрд░реЗрдб-рдЕрдл рд╕реБрд░реБрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░ рдЕрд╕рдлрд▓рддрд╛рдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рдмреАрдЪ рдмрдирд╛рдпреМрдВред рджреБрдИ рд╡рд░реНрд╖рдорд╛ рдпреЛ рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдлрд╛рдпрд░ рднрдпреЛ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдмреЗрдХрд╛рд░ рдерд┐рдПрдиред

Bitbucket рдкреНрд▓рдЧрдЗрдирдХреЛ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдЦреНрди рд╣рд╛рдореАрд▓рд╛рдИ рджреБрдИ рд╣рдкреНрддрд╛ рд▓рд╛рдЧреНрдпреЛред

рдирдпрд╛рдБ рдЪреЗрдХрд╣рд░реВ

рдпрд╕рдмреАрдЪрдорд╛ рд╣рд╛рдореНрд░реЛ рдЯреЛрд▓реА рдмрдвреНрджреИ рдЧрдпреЛ ред рдирдпрд╛рдБ рдЪреЗрдХрд╣рд░реВ рдердкрд┐рдПрдХрд╛ рдЫрдиреНред

рд╣рд╛рдореАрд▓реЗ рд╕реЛрдЪреЗ: рдпрджрд┐ рдЧрд▓реНрддреАрд╣рд░реВ рд░реЛрдХреНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗ рдХрд┐рди? рд░ рддреНрдпрд╣реА рдХрд╛рд░рдгрд▓реЗ рдЙрдиреАрд╣рд░реВрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгред рд╣рд╛рдореАрд▓реЗ рд▓рд┐рдиреНрдЯрдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реНрдпреМрдВ, рдЬреБрди рдПрдиреНрдбреНрд░реЛрдЗрдб SDK рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫред рддрд░ рддреНрдпрд╕ рд╕рдордпрдорд╛ рдЙрд╕рд▓рд╛рдИ рдерд╛рд╣рд╛ рдерд┐рдПрди рдХрд┐ рдХрд╕рд░реА рдХреЛрдЯрд▓рд┐рди рдХреЛрдбрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ, рд░ рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдХреЛрдЯрд▓рд┐рдирдорд╛ 75% рдЖрд╡реЗрджрди рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛред рддреНрдпрд╕рдХрд╛рд░рдг, рдмрд┐рд▓реНрдЯ-рдЗрдирд╣рд░реВ рд▓рд┐рдиреНрдЯрдорд╛ рдердкрд┐рдпреЛ рдПрдиреНрдбреНрд░реЛрдЗрдб рд╕реНрдЯреБрдбрд┐рдпреЛ рдЬрд╛рдБрдЪред

рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рд╡рд┐рдХреГрддрд┐рд╣рд░реВ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛ: рдПрдиреНрдбреНрд░реЛрдЗрдб рд╕реНрдЯреБрдбрд┐рдпреЛ рд▓рд┐рдиреБрд╣реЛрд╕реН, рдпрд╕рд▓рд╛рдИ рдбрдХрд░рдорд╛ рдкреНрдпрд╛рдХреЗрдЬ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдпрд╕рд▓рд╛рдИ рднрд░реНрдЪреБрдЕрд▓ рдордирд┐рдЯрд░рдХреЛ рд╕рд╛рде рд╕реАрдЖрдИрдорд╛ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рддрд╛рдХрд┐ рдпрд╕рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреНрдиреЗ рд▓рд╛рдЧреНрдЫред рддрд░ рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрдпреЛред

рдпреЛ рд╕рдордпрдорд╛ рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рд▓реЗрдЦреНрди рдерд╛рд▓реНрдпреМрдВ рдЙрдкрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдпреЛ рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдкрд░реАрдХреНрд╖рдгред рдпреЛ рддрдм рд╣реБрдиреНрдЫ рдЬрдм рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рд╕рд╛рдиреЛ рджреГрд╢реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдиреНрджрд░реНрдн рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ, рд░ рдкрд░реАрдХреНрд╖рдгрдорд╛ рджреГрд╢реНрдпрдмрд╛рдЯ рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рд▓рд┐рдиреЗ рд░ рдпрд╕рд▓рд╛рдИ рдкрд┐рдХреНрд╕реЗрд▓рджреНрд╡рд╛рд░рд╛ рдорд╛рдирдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд┐рдХреНрд╕реЗрд▓рд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрдиреЗ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреНрдЫред рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рднрд┐рдиреНрдирддрд╛ рдЫ рднрдиреЗ, рдпрд╕рдХреЛ рдорддрд▓рдм рд▓реЗрдЖрдЙрдЯ рдХрддреИ рдЧрд▓рдд рднрдПрдХреЛ рдЫ рд╡рд╛ рд╢реИрд▓реАрд╣рд░реВрдорд╛ рдХреЗрд╣рд┐ рдЧрд▓рдд рдЫред

рддрд░ рдЙрдкрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд░ рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЙрдкрдХрд░рдгрд╣рд░реВрдорд╛ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ: рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВрдорд╛ рд╡рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгрд╣рд░реВрдорд╛ред рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЫрдиреН рд░ рддрд┐рдиреАрд╣рд░реВ рдмрд╛рд░рдореНрдмрд╛рд░ рдЪрд▓рд╛рдЗрдПрдХрд╛ рдЫрдиреН рднрдиреНрдиреЗ рдХреБрд░рд╛рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, рд╕рдореНрдкреВрд░реНрдг рдлрд╛рд░реНрдо рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдлрд╛рд░реНрдо рд╕реБрд░реБ рдЧрд░реНрди рдзреЗрд░реИ рд╢реНрд░рдо-рдЧрд╣рди рдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдПрдХ рддрдпрд╛рд░ рд╡рд┐рдХрд▓реНрдк рдлреЗрд▓рд╛ рдкрд╛рд░реНтАНрдпреМрдВ - Firebase Test Labред

рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛

рдлрд╛рдпрд░рдмреЗрд╕ рдЧреБрдЧрд▓ рдЙрддреНрдкрд╛рджрди рд╣реЛ, рдпрд╕рдХреЛ рдЕрд░реНрде рдпреЛ рднрд░рдкрд░реНрджреЛ рд░ рдХрд╣рд┐рд▓реНрдпреИ рдорд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдирд╣реБрдиреЗ рд╣реБрдирд╛рд▓реЗ рдпреЛ рдЫрд╛рдирд┐рдПрдХреЛ рд╣реЛред рдореВрд▓реНрдпрд╣рд░реВ рдЙрдЪрд┐рдд рдЫрдиреН: $ 5 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдкреНрд░рддрд┐ рдШрдгреНрдЯрд╛, 1 $ рдкреНрд░рддрд┐ рдШрдгреНрдЯрд╛ рдПрдХ рдЗрдореБрд▓реЗрдЯрд░рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдиред

рд╣рд╛рдореНрд░реЛ CI рдорд╛ Firebase рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рд▓рдЧрднрдЧ рддреАрди рд╣рдкреНрддрд╛ рд▓рд╛рдЧреНрдпреЛред

рддрд░ рдЯреЛрд▓реА рдмрдвреНрджреИ рдЧрдпреЛ, рд░ рдлрд╛рдпрд░рдмреЗрд╕, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╣рд╛рдореАрд▓рд╛рдИ рдирд┐рд░рд╛рд╢ рдЧрд░реНрди рдерд╛рд▓реНрдпреЛред рддреНрдпрддрд┐рдмреЗрд▓рд╛ рдЙрд╣рд╛рдБрд╕рдБрдЧ рдХреБрдиреИ рдПрд╕рдПрд▓рдП рдерд┐рдПрдиред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ Firebase рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдпрдиреНрддреНрд░рд╣рд░реВ рдкрд░реАрдХреНрд╖рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐:рд╢реБрд▓реНрдХ рдирднрдПрд╕рдореНрдо рдкрд░реНрдЦрди рд▓рдЧрд╛рдЗрджрд┐рдпреЛ, рд░ рд╣рд╛рдореАрд▓реЗ рдЪрд╛рд╣реЗрдЬрд╕реНрддреЛ рддреБрд░реБрдиреНрддреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдерд╛рд▓реЗрдиред рд▓рд╛рдЗрдирдорд╛ рдХреБрд░реНрджрд╛ рдЖрдзрд╛ рдШрдгреНрдЯрд╛ рд▓рд╛рдЧреНрдереНрдпреЛ, рдЬреБрди рдзреЗрд░реИ рд▓рд╛рдореЛ рд╕рдордп рд╣реЛред рдкреНрд░рддреНрдпреЗрдХ PR рдорд╛ рдЙрдкрдХрд░рдг рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЗрдпреЛ, рдврд┐рд▓рд╛рдЗрд▓реЗ рд╡рд╛рд╕реНрддрд╡рдореИ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рд╕реБрд╕реНрдд рдмрдирд╛рдпреЛ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдорд╛рд╕рд┐рдХ рдмрд┐рд▓ рд░рд╛рдЙрдиреНрдб рдпреЛрдЧрдХреЛ рд╕рд╛рде рдЖрдпреЛред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпреЛ рдлрд╛рдпрд░рдмреЗрд╕ рдЫреЛрдбреЗрд░ рдШрд░ рднрд┐рддреНрд░ рдХрд╛рдо рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░рд┐рдпреЛ, рдХрд┐рдирдХрд┐ рдЯреЛрд▓реА рдкрд░реНрдпрд╛рдкреНрдд рдмрдвреЗрдХреЛ рдерд┐рдпреЛред

рдбрдХрд░ + рдкрд╛рдЗрдерди + рдмреНрдпрд╛рд╕

рд╣рд╛рдореАрд▓реЗ рдбрдХрд░, рд╕реНрдЯрдл рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВ рдпрд╕рдорд╛ рд▓рд┐рдпреМрдВ, рдкрд╛рдЗрдердирдорд╛ рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЗрдЦреНрдпреМрдВ, рдЬрд╕рд▓реЗ рд╕рд╣реА рд╕рдордпрдорд╛ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реБрд░реБ рдЧрд░реНрдЫ рд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрд╛ рд░реЛрдХреНрдЫред рд░, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдмреНрдпрд╛рд╢ рд▓рд┐рдкрд┐рд╣рд░реВрдХреЛ рдПрдХ рдЬреЛрдбреА - рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВ рдмрд┐рдирд╛ рдХрд╣рд╛рдБ рд╣реБрдиреЗрдЫреМрдВ?

рдпреЛ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкрд╛рдБрдЪ рд╣рдкреНрддрд╛ рд▓рд╛рдЧреНрдпреЛред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдкреНрд░рддреНрдпреЗрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐ рдЪреЗрдХрд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рдорд░реНрдЬ-рдмреНрд▓рдХрд┐рдЩ рд╕реВрдЪреА рдерд┐рдпреЛ:

  • ARK рд╡рд┐рдзрд╛рдирд╕рднрд╛;
  • рдЬреБрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг;
  • рд▓рд┐рдиреНрдЯ;
  • рдПрдиреНрдбреНрд░реЛрдЗрдб рд╕реНрдЯреБрдбрд┐рдпреЛ рдЬрд╛рдБрдЪ;
  • рдЙрдкрдХрд░рдг рдкрд░реАрдХреНрд╖рдг;
  • рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВред

рдпрд╕рд▓реЗ рдзреЗрд░реИ рд╕рдореНрднрд╛рд╡рд┐рдд рдмреНрд░реЗрдХрдбрд╛рдЙрдирд╣рд░реВ рд░реЛрдХреНрдпреЛред рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛ рд╕рдмреИ рдХрд╛рдо рднрдпреЛ, рддрд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЧреБрдирд╛рд╕реЛ рдЧрд░реЗ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрд╛рдЗ рдзреЗрд░реИ рд▓рд╛рдореЛ рдерд┐рдпреЛред

рдХрддрд┐ рд▓рд╛рдореЛ рдзреЗрд░реИ рд▓рд╛рдореЛ рдЫ? рд╣рд╛рдореАрд▓реЗ Bitbucket рд░ TeamCity рдмрд╛рдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдбрд╛рдЯрд╛ рдЕрдкрд▓реЛрдб рдЧрд░реНрдпреМрдВ рд░ рддреНрдпреЛ рдорд╣рд╕реБрд╕ рдЧрд░реНрдпреМрдВ рдФрд╕рдд рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп 45 рдорд┐рдиреЗрдЯред рддреНрдпреЛ рд╣реЛ, рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛, рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓реНрджрд╛, рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдФрд╕рдд 45 рдорд┐рдиреЗрдЯ рдкрд░реНрдЦрдиреНрдЫред рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рдзреЗрд░реИ рд╣реЛ, рд░ рддрдкрд╛рдИрд▓реЗ рддреНрдпрд╕рд░реА рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдиред

рдЕрд╡рд╢реНрдп рдкрдирд┐, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВрд▓рд╛рдИ рдЧрддрд┐ рджрд┐рдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред

рдЫрд┐рдЯреЛ рдЧрд░реМрдВ

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

рдзреЗрд░реИ рд╕рдордп рд▓рд╛рдЧреНрдиреЗ рдЪреЗрдХрд╣рд░реВ рд╣рдЯрд╛рдЙрдБрджреИ

рд╣рд╛рдореНрд░реЛ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрд▓реЗ рдпреА рдкреНрд░рдХрд╛рд░рдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рддреНрди рд╕рдХреНрдЫред

  • рдЬрд╛рдиреЗ рдЫреИрдиред рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдХреЗрд╣рд┐ рдирд┐рд░реНрдорд╛рдг рдирдЧрд░реНрджрд╛ CI рд▓реЗ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рд╕рдорд╛рддреНрди рд╕рдХреНрдЫред рдореИрд▓реЗ рдкрд╣рд┐рд▓реНрдпреИ рднрдиреЗрдЭреИрдВ, рддреНрдпрд╕рдкрдЫрд┐ рдХрд╕реИрд▓реЗ рдХреЗрд╣реА рдЬрдореНрдорд╛ рдЧрд░реНрди рд╕рдХреНрджреИрди, рд╡рд┐рдХрд╛рд╕ рд░реЛрдХрд┐рдиреНрдЫ, рд░ рд╕рдмреИ рдЪрд┐рдиреНрддрд┐рдд рд╣реБрдиреНрдЫрдиреНред
  • рд╡реНрдпрд╡рд╣рд╛рд░ рдорд╛ рдмрдЧред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЬрдм рдПрдк рдмрдирд╛рдЗрдиреНрдЫ, рддрд░ рдмрдЯрди рдерд┐рдЪреНрджрд╛ рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреНрдЫ, рд╡рд╛ рдмрдЯрди рдерд┐рдЪреНрджреИрдиред рдпреЛ рдЦрд░рд╛рдм рдЫ рдХрд┐рдирднрдиреЗ рдпрд╕реНрддреЛ рдмрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдорд╛ рдкреБрдЧреНрди рд╕рдХреНрдЫред
  • рд▓реЗрдЖрдЙрдЯрдорд╛ рдмрдЧред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрд░ рдмрд╛рдпрд╛рдБ 10 рдкрд┐рдХреНрд╕реЗрд▓ рд╕рд╛рд░рд┐рдпреЛред
  • рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЛрдгрдорд╛ рд╡реГрджреНрдзрд┐.

рдпреЛ рд╕реВрдЪреА рд╣реЗрд░реЗрдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рдорд╣рд╕реБрд╕ рдЧрд░реНрдпреМрдВ рдХрд┐ рдкрд╣рд┐рд▓реЛ рджреБрдИ рдЕрдВрдХ рдорд╛рддреНрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЫрдиреНред рд╣рд╛рдореА рдкрд╣рд┐рд▓реЗ рдпрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рддреНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рд▓реЗрдЖрдЙрдЯрдорд╛ рдмрдЧрд╣рд░реВ рдбрд┐рдЬрд╛рдЗрди-рд╕рдореАрдХреНрд╖рд╛ рдЪрд░рдгрдорд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЗрдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕рдЬрд┐рд▓реИ рд╕рдЪреНрдпрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЛрдгрд╕рдБрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрди рдЫреБрдЯреНрдЯреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░ рдпреЛрдЬрдирд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ рдкрд░реАрдХреНрд╖рдг рдирдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред

рдпрд╕ рд╡рд░реНрдЧреАрдХрд░рдгрдХреЛ рдЖрдзрд╛рд░рдорд╛, рд╣рд╛рдореАрд▓реЗ рдЪреЗрдХрд╣рд░реВрдХреЛ рд╕рдореНрдкреВрд░реНрдг рд╕реВрдЪреАрд▓рд╛рдИ рд╣рд▓реНрд▓рд╛рдпреМрдВред рд▓рд┐рдиреНрдЯ рдХреНрд░рд╕ рдЖрдЙрдЯ рдЧрд░рд┐рдпреЛ рд░ рд░рд╛рддрд╛рд░рд╛рдд рдпрд╕рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╕реНрдердЧрд┐рдд рдЧрд░реНтАНрдпреЛ: рдпрд╕рд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдХрддрд┐ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН рднрдиреЗрд░ рдкреНрд░рддрд┐рд╡реЗрджрди рддрдпрд╛рд░ рдкрд╛рд░реНрдиреЗрдЫред рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЛрдгрдорд╛ рдЫреБрдЯреНрдЯрд╛рдЫреБрдЯреНрдЯреИ рдХрд╛рдо рдЧрд░реНрди рд╕рд╣рдордд рднрдПрдХрд╛ рдЫреМрдВ, рд░ рдПрдиреНрдбреНрд░реЛрдЗрдб рд╕реНрдЯреБрдбрд┐рдпреЛ рдЬрд╛рдБрдЪрд╣рд░реВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкрд░рд┐рддреНрдпрд╛рдЧ рдЧрд░рд┐рдпреЛред рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдирд┐рд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдорд╛ рдПрдиреНрдбреНрд░реЛрдЗрдб рд╕реНрдЯреБрдбрд┐рдпреЛ рд░реЛрдЪрдХ рд▓рд╛рдЧреНрджрдЫ, рддрд░ рд╕рдорд░реНрдердирдорд╛ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред рдПрдиреНрдбреНрд░реЛрдЗрдб рд╕реНрдЯреБрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рдХреБрдиреИ рдкрдирд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрдХреЛ рдЕрд░реНрде рдмреБрдЭреНрди рдирд╕рдХрд┐рдиреЗ рдмрдЧрд╣рд░реВрд╕рдБрдЧрдХреЛ рд╕рдВрдШрд░реНрд╖ рд╣реЛред рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди рдкрдирд┐ рдЧрд╛рд╣реНрд░реЛ рдерд┐рдпреЛ, рдХрд┐рдирдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдзреЗрд░реИ рд╕реНрдерд┐рд░ рдерд┐рдПрди рд░ рддреНрдпрд╣рд╛рдБ рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХрд╣рд░реВ рдерд┐рдПред рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЬрд╛рдБрдЪ рд╕реВрдЪреАрдмрд╛рдЯ рд╣рдЯрд╛рдЗрдПрдХрд╛ рдЫрдиреН.

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ рдмрд╛рдБрдХреА рдерд┐рдпреЛ:

  • ARK рд╡рд┐рдзрд╛рдирд╕рднрд╛;
  • рдЬреБрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг;
  • рдЙрдкрдХрд░рдг рдкрд░реАрдХреНрд╖рдгред

Gradle рд░рд┐рдореЛрдЯ рдХреНрдпрд╛рд╕

рднрд╛рд░реА рдЬрд╛рдБрдЪ рдмрд┐рдирд╛, рд╕рдмреИ рд░рд╛рдореНрд░реЛ рднрдпреЛред рддрд░ рдкреВрд░реНрдгрддрд╛рдХреЛ рдХреБрдиреИ рд╕реАрдорд╛ рдЫреИрди!

рд╣рд╛рдореНрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд▓рдЧрднрдЧ 150 рдЧреНрд░реЗрдбрд▓ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред Gradle рд░рд┐рдореЛрдЯ рдХреНрдпрд╛рд╕ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред

Gradle рд░рд┐рдореЛрдЯ рдХреНрдпрд╛рд╕ рдПрдХ рд╕реЗрд╡рд╛ рд╣реЛ рдЬрд╕рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдорд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдорд╛рдг рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ рдХреНрдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдЫред Gradle, рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЛрдб рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рд░рд┐рдореЛрдЯ рдХреНрдпрд╛рд╕рдорд╛ рдирдХ рдЧрд░реНрди HTTP рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд░ рд╕реЛрдзреНрдиреБрд╣реЛрд╕реН рдХрд┐ рдХрд╕реИрд▓реЗ рдпреЛ рдХрд╛рд░реНрдп рдкрд╣рд┐рд▓реЗ рдиреИ рдЧрд░рд┐рд╕рдХреЗрдХреЛ рдЫред рдпрджрд┐ рд╣реЛ рднрдиреЗ, рдпрд╕рд▓реЗ рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдо рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрджрдЫред

Gradle рд░рд┐рдореЛрдЯ рдХреНрдпрд╛рд╕ рдЪрд▓рд╛рдЙрди рд╕рдЬрд┐рд▓реЛ рдЫ рдХрд┐рдирднрдиреЗ Gradle рд▓реЗ рдбрдХрд░ рдЫрд╡рд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рд╣рд╛рдореАрд▓реЗ рдпреЛ рддреАрди рдШрдгреНрдЯрд╛рдорд╛ рдЧрд░реНрди рд╕рдлрд▓ рднрдпреМрдВред

рддрдкрд╛рдИрдВрд▓реЗ рдЧрд░реНрдиреБ рдкрд░реНрдиреЗ рдерд┐рдпреЛ рдбрдХрд░ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдПрдХ рд▓рд╛рдЗрди рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред рддрд░ рдпреЛ рдЪрд╛рдБрдбреИ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдпрджреНрдпрдкрд┐ рд╕рдмреИ рдХреБрд░рд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рд▓рд╛рдЧреНрдиреЗрдЫред

рддрд▓ рдХреНрдпрд╛рд╕ рдорд┐рд╕ рдЧреНрд░рд╛рдл рдЫред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рд╕реБрд░реБрдорд╛, рдХреНрдпрд╛рд╕ рдорд┐рд╕ рднрдПрдХреЛ рдкреНрд░рддрд┐рд╢рдд рд▓рдЧрднрдЧ 65 рдерд┐рдпреЛред рддреАрди рд╣рдкреНрддрд╛ рдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рдпреЛ рдорд╛рди 20% рдорд╛ рдмрдврд╛рдЙрди рд╕рдлрд▓ рднрдпреМрдВред рдпреЛ рдкрддреНрддрд╛ рд▓рд╛рдЧреНрдпреЛ рдХрд┐ рдПрдиреНрдбреНрд░реЛрдЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдЕрдЬреАрдм рдЯреНрд░рд╛рдиреНрдЬрд┐рдЯрд┐рдн рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдЫрдиреН, рдЬрд╕рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ Gradle рдХреНрдпрд╛рд╕ рдЫреБрдЯреЗрдХреЛ рдЫред

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

рдкреНрд░рднрд╛рд╡ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛, рд╣рд╛рдореА git diff рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдЫреМрдВ рд░ рдкрд░рд┐рдорд╛рд░реНрдЬрд┐рдд Gradle рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

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

рдЙрдкрдХрд░рдг рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рддреНрдпрддрд┐ рд╕рд░рд▓ рдЫреИрдирдиреН, рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рд╢реАрд░реНрд╖-рд╕реНрддрд░рдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЛрдбреНрдпреБрд▓рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреБрди рдореЛрдбреНрдпреБрд▓рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ рднрдиреЗрд░ рдмреБрдЭреНрди рд╣рд╛рдореАрд▓реЗ рдмрд╛рдЗрдЯрдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд╕рд╛рде рд╣реЗрд░рд┐рд╕реНрдЯрд┐рдХреНрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред

рдЗрдиреНрд╕реНрдЯреНрд░реБрдореЗрдиреНрдЯреЗрд╕рди рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдХреЛ рдЕрдкрд░реЗрд╢рди рдЕрдкрдЧреНрд░реЗрдб рдЧрд░реНрди рддрд╛рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдорд╛рддреНрд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд▓рдЧрднрдЧ рдЖрда рд╣рдкреНрддрд╛ рд▓рд╛рдЧреНрдпреЛред

рдирд┐рд░реАрдХреНрд╖рдгрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрдиреЗ рдЙрдкрд╛рдпрд╣рд░реВрд▓реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдЧрд░реЗрдХреЛ рдЫред 45 рдорд┐рдиреЗрдЯрдмрд╛рдЯ рд╣рд╛рдореА рд▓рдЧрднрдЧ 15 рд╕рдореНрдо рдкреБрдЧреНрдпреМрдВред рдирд┐рд░реНрдорд╛рдгрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдЪреМрдерд╛рдИ рдШрдгреНрдЯрд╛ рдкрд░реНрдЦрдиреБ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд╛рдорд╛рдиреНрдп рдЫред

рддрд░ рдЕрд╣рд┐рд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдХреБрди рдмрд┐рд▓реНрдб рд╕реБрд░реБ рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН, рд▓рдЧ рдХрд╣рд╛рдБ рд╣реЗрд░реНрдиреЗ, рдмрд┐рд▓реНрдб рдХрд┐рди рд░рд╛рддреЛ рдЫ, рдХреБрди рдЯреЗрд╕реНрдЯ рдлреЗрд▓ рднрдпреЛ, рдЖрджрд┐ рдмреБрдЭреНрди рдирд╕рдХреЗрдХреЛ рдЧреБрдирд╛рд╕реЛ рдЧрд░реНрди рдерд╛рд▓реЗрдХрд╛ рдЫрдиреН ред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рд╛рдердорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓реЗ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рдврд┐рд▓реЛ рдЧрд░реНрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ PR рд░ рд╕рдореНрднрд╡ рднрдПрд╕рдореНрдо рдирд┐рд░реНрдорд╛рдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдпреМрдВред рд╣рд╛рдореАрд▓реЗ рдмрд┐рдЯрдмрдХреЗрдЯрдорд╛ PR рдорд╛ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрдпреМрдВ, рдХреБрди рдирд┐рд░реНрдорд╛рдг рдЕрд╕рдлрд▓ рднрдпреЛ рд░ рдХрд┐рди, рд░ Slack рдорд╛ рд▓рдХреНрд╖рд┐рдд рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд▓реЗрдЦреНрдпреМрдВред рдЕрдиреНрддрдорд╛, рд╣рд╛рдореАрд▓реЗ рдкреГрд╖реНрдардХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рд▓ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рд╕рдмреИ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реНрдерд┐рддрд┐рдХреЛ рд╕реВрдЪреА рд╕рд╣рд┐рддрдХреЛ PR рдбреНрдпрд╛рд╕рдмреЛрд░реНрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдпреМрдВ: рд▓рд╛рдордмрджреНрдз, рдЪрд▓рд┐рд░рд╣реЗрдХреЛ, рдХреНрд░реНрдпрд╛рд╕ рд╡рд╛ рдкреВрд░рд╛ред рддрдкрд╛рдИрдВ рдирд┐рд░реНрдорд╛рдгрдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдпрд╕рдХреЛ рд▓рдЧрдорд╛ рдЬрд╛рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдЫ рд╣рдкреНрддрд╛ рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд╛ рдЦрд░реНрдЪ рдЧрд░рд┐рдпреЛред

рдпреЛрдЬрдирд╛рд╣рд░реБ

рдкрдЫрд┐рд▓реНрд▓реЛ рдЗрддрд┐рд╣рд╛рд╕рдорд╛ рдЬрд╛рдФрдВред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА рдирдпрд╛рдБ рд╕реНрддрд░рдорд╛ рдкреБрдЧреНрдпреМрдВ - рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рдЗрдореБрд▓реЗрдЯрд░ рдлрд╛рд░реНрдо рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред рдЬрдм рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкрд░реАрдХреНрд╖рдг рд░ рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВ рдЫрдиреН, рддрд┐рдиреАрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рд╣реБрдиреНрдЫрдиреНред рдлрд▓рд╕реНрд╡рд░реВрдк, рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВ рд▓рдЪрд┐рд▓реЛ рд╕реНрд░реЛрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдХреЛ рд╕рд╛рде k8s рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рд╛рд░рд┐рдпреЛред

рд╕рд╛рдереИ, рдЕрдиреНрдп рдпреЛрдЬрдирд╛рд╣рд░реВ рдЫрдиреНред

  • рд▓рд┐рдиреНрдЯ рдлрд░реНрдХрд╛рдЙрдиреБрд╣реЛрд╕реН (рд░ рдЕрдиреНрдп рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг)ред рдпрд╕ рджрд┐рд╢рд╛рдорд╛ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗрджреЗрдЦрд┐ рдиреИ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред
  • рдПрдХ PR рдЕрд╡рд░реЛрдзрдХ рдорд╛ рд╕рдмреИ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рдЕрдиреНрдд-рджреЗрдЦрд┐-рдЕрдиреНрдд рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рд╕рдмреИ SDK рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ред

рддреНрдпрд╕реЛрднрдП, рд╣рд╛рдореАрд▓реЗ Avito рдорд╛ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рдЗрддрд┐рд╣рд╛рд╕ рдкрддреНрддрд╛ рд▓рдЧрд╛рдПрдХрд╛ рдЫреМрдВред рдЕрдм рдо рдЕрдиреБрднрд╡реА рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдХреЗрд╣реА рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рди рдЪрд╛рд╣рдиреНрдЫреБред

╨б╨╛╨▓╨╡╤В╤Л

рдпрджрд┐ рдореИрд▓реЗ рдХреЗрд╡рд▓ рдПрдХ рдЯреБрдХреНрд░рд╛ рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рди рд╕рдХреНрдЫреБ рднрдиреЗ рдпреЛ рд╣реБрдиреЗрдЫ:

рдХреГрдкрдпрд╛ рд╢реЗрд▓ рд▓рд┐рдкрд┐рд╣рд░реВрд╕рдБрдЧ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреБрд╣реЛрд╕реН!

Bash рдПрдХ рдзреЗрд░реИ рд▓рдЪрд┐рд▓реЛ рд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реЛ, рдпреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦреНрди рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░ рдЫрд┐рдЯреЛ рдЫред рддрд░ рддрдкрд╛рдИрдВ рдпрд╕рдХреЛ рд╕рд╛рде рдЬрд╛рд▓рдорд╛ рдкрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╣рд╛рдореА рдпрд╕рдорд╛ рдкрд░реНрдпреМрдВред

рдпреЛ рд╕рдмреИ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрд╕рдБрдЧ рд╕реБрд░реБ рднрдпреЛ рдЬреБрди рд╣рд╛рдореНрд░реЛ рдирд┐рд░реНрдорд╛рдг рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рдЪрд▓реНрдпреЛ:

#!/usr/bin/env bash
./gradlew assembleDebug

рддрд░, рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рд╕рдордпрд╕рдБрдЧреИ рд╕рдмреИ рдХреБрд░рд╛ рд╡рд┐рдХрд╛рд╕ рд╣реБрдиреНрдЫ рд░ рдердк рдЬрдЯрд┐рд▓ рд╣реБрдиреНрдЫ - рдПрдЙрдЯрд╛ рд▓рд┐рдкрд┐рд▓рд╛рдИ рдЕрд░реНрдХреЛрдмрд╛рдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рддреНрдпрд╣рд╛рдБ рдХреЗрд╣реА рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкрд╛рд╕ рдЧрд░реМрдВ - рдЕрдиреНрддрдорд╛ рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдп рд▓реЗрдЦреНрдиреБрдкрд░реЗрдХреЛ рдерд┐рдпреЛ рдЬрд╕рд▓реЗ рдмрд╛рд╢ рдиреЗрд╕реНрдЯрд┐рдЩрдХреЛ рдХреБрди рд╕реНрддрд░рдорд╛ рд╣рд╛рдореА рдХреНрд░рдордмрджреНрдз рдЫреМрдВ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдЫред рдЖрд╡рд╢реНрдпрдХ рдЙрджреНрдзрд░рдгрд╣рд░реВ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди, рдпреЛ рд╕рдмреИ рд╕реБрд░реБ рдЧрд░реНрдиред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рддрдкрд╛рдИрдВрд▓реЗ рддреНрдпрд╕реНрддрд╛ рд▓рд┐рдкрд┐рд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╢реНрд░рдо рд▓рд╛рдЧрддрдХреЛ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдо рддрдкрд╛рдИрд▓рд╛рдИ рдпреЛ рдЬрд╛рд▓рдорд╛ рдирдкрд░реНрди рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рдиреНрдЫреБред

рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?

  • рдХреБрдиреИ рдкрдирд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ рднрд╛рд╖рд╛ред рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рдкрд╛рдЗрдерди рд╡рд╛ рдХреЛрдЯрд▓рд┐рди рд▓рд┐рдкрд┐ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд┐рдирднрдиреЗ рдпреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╣реЛ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдЗрдиред
  • рд╡рд╛ рдлрд╛рд░рдордорд╛ рд╕рдмреИ рдирд┐рд░реНрдорд╛рдг рддрд░реНрдХрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд╕реНрдЯрдо рдЧреНрд░реЗрдбрд▓ рдХрд╛рд░реНрдпрд╣рд░реВ рдЖрдлреНрдиреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреАред

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

рд╕реБрдЭрд╛рд╡ #2: рдХреЛрдбрдорд╛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдпреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ рдЬрдм рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рд╕реЗрдЯрд┐рдЩ рдЬреЗрдирдХрд┐рдиреНрд╕ рд╡рд╛ TeamCity, рдЖрджрд┐ рдХреЛ UI рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рддрд░ рдкрд╛рда рдлрд╛рдЗрд▓ рдХреЛ рд░реВрдк рдорд╛ рд╕реАрдзрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрдгреНрдбрд╛рд░ рдорд╛ред рдпрд╕рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдпреЛрдЧреНрдпрддрд╛ рджрд┐рдиреНрдЫред рдпреЛ рд░реЛрд▓рдмреНрдпрд╛рдХ рдЧрд░реНрди рд╡рд╛ рдЕрд░реНрдХреЛ рд╢рд╛рдЦрд╛рдорд╛ рдХреЛрдб рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рд╣реБрдиреЗрдЫреИрдиред

рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдВрдЧ рдХреЗ рдЧрд░реНрдиреЗ?

рдЯрд┐рдк #3: рдбрдХрд░рд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫред

рдпрд╕рд▓реЗ рдкрдХреНрдХреИ рдкрдирд┐ рдПрдиреНрдбреНрд░реЛрдЗрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫ; рдЖрдИрдУрдПрд╕рд╕рдБрдЧ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдПрдЙрдЯрд╛ рдЫреИрди, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢ред

рдпреЛ jdk рд░ android-sdk рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рд╕рд╛рдзрд╛рд░рдг рдбрдХрд░ рдлрд╛рдЗрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЛ:

FROM openjdk:8

ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" 
    ANDROID_HOME="/usr/local/android-sdk" 
    ANDROID_VERSION=26 
    ANDROID_BUILD_TOOLS_VERSION=26.0.2

# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android 
    && cd "$ANDROID_HOME" 
    && curl -o sdk.zip $SDK_URL 
    && unzip sdk.zip 
    && rm sdk.zip 
    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses

# Install Android Build Tool and Libraries
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"

RUN mkdir /application
WORKDIR /application

рдпреЛ рдбрдХрд░ рдлрд╛рдЗрд▓ рд▓реЗрдЦреЗрдкрдЫрд┐ (рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдЙрдЯрд╛ рдЧреЛрдкреНрдп рдХреБрд░рд╛ рдмрддрд╛рдЙрдиреЗрдЫреБ, рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рд▓реЗрдЦреНрдиреБ рдкрд░реНрджреИрди, рддрд░ рдпрд╕рд▓рд╛рдИ GitHub рдмрд╛рдЯ рддрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рддрд╛рдиреНрдиреБрд╣реЛрд╕реН) рд░ рдЫрд╡рд┐рд▓рд╛рдИ рднреЗрд▓рд╛ рдЧрд░реНрдиреБрднрдпреЛ, рддрдкрд╛рдИрдВрд▓реЗ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдкрд╛рдЙрдиреБрднрдпреЛ рдЬрд╕рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд░ рдЬреБрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред

рджреБрдИ рдореБрдЦреНрдп рдХрд╛рд░рдгрд╣рд░реВ рдХрд┐рди рдпрд╕рд▓реЗ рдЕрд░реНрде рджрд┐рдиреНрдЫ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рд░ рджреЛрд╣реЛрд░рд┐рдиреЗ рдпреЛрдЧреНрдпрддрд╛ред рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрд▓реЗ рдПрдХ рджрд░реНрдЬрди рдмрд┐рд▓реНрдб рдПрдЬреЗрдиреНрдЯрд╣рд░реВ рддреБрд░реБрдиреНрддреИ рдЙрдард╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬреБрди рдЕрдШрд┐рд▓реНрд▓реЛрдХреЛ рдЬрд╕реНрддреИ рд╕рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рд╣реБрдиреЗрдЫред рдпрд╕рд▓реЗ CI рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВрдХреЛ рдЬреАрд╡рди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред рдПрдиреНрдбреНрд░реЛрдЗрдб-рдПрд╕рдбреАрдХреЗрд▓рд╛рдИ рдбрдХрд░рдорд╛ рдкреБрд╢ рдЧрд░реНрди рдПрдХрджрдо рд╕рдЬрд┐рд▓реЛ рдЫ, рддрд░ рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВрд╕рдБрдЧ рдпреЛ рдЕрд▓рд┐ рдмрдвреА рдЧрд╛рд╣реНрд░реЛ рдЫ: рддрдкрд╛рдИрдВрд▓реЗ рдЕрд▓рд┐ рдХрдбрд╛ рдореЗрд╣рдирдд рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ (рд╡рд╛ GitHub рдмрд╛рдЯ рд╕рдорд╛рдкреНрдд рднрдПрдХреЛ рдлреЗрд░рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН)ред

рд╕реБрдЭрд╛рд╡ рдирдореНрдмрд░ 4: рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН рдХрд┐ рдирд┐рд░реАрдХреНрд╖рдгрд╣рд░реВ рдирд┐рд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛрдЗрди, рддрд░ рдорд╛рдирд┐рд╕рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЧрд░рд┐рдиреНрдЫред

рджреНрд░реБрдд рд░, рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛, рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ: рдХреЗ рдмреНрд░реЗрдХ рднрдпреЛ, рдХреБрди рдкрд░реАрдХреНрд╖рдг рдЕрд╕рдлрд▓ рднрдпреЛ, рдо рдмрд┐рд▓реНрдбрд▓рдЧ рдХрд╣рд╛рдБ рджреЗрдЦреНрди рд╕рдХреНрдЫреБред

рд╕реБрдЭрд╛рд╡ #5: рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реБрдиреБрд╣реЛрд╕реНред

рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдмреБрдЭреНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБ рдХреБрди рдкреНрд░рдХрд╛рд░рдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд░реЛрдХреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ, рдХрддрд┐ рд╕реНрд░реЛрддрд╣рд░реВ, рд╕рдордп, рд░ рдХрдореНрдкреНрдпреБрдЯрд░ рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрди рдЗрдЪреНрдЫреБрдХ рд╣реБрдиреБрд╣реБрдиреНрдЫред рдзреЗрд░реИ рд▓рд╛рдореЛ рд╕рдордп рд▓рд╛рдЧреНрдиреЗ рдЬрд╛рдБрдЪрд╣рд░реВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд░рд╛рддрднрд░ рд╕реНрдердЧрд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд░ рддреА рдордзреНрдпреЗ рдЬреЛ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╕рдорд╛рддреНрджреИрдирдиреН рдкреВрд░реНрдг рд░реВрдкрдорд╛ рддреНрдпрд╛рдЧрд┐рдиреБрдкрд░реНрдЫред

рд╕реБрдЭрд╛рд╡ #6: рддрдпрд╛рд░ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдХрдореНрдкрдиреАрд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рдХреНрд▓рд╛рдЙрдб CI рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

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

рд╕реБрдЭрд╛рд╡ #7: рдареВрд▓реЛ рдЯреЛрд▓реАрдорд╛, рдЗрди-рд╣рд╛рдЙрд╕ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдмрдвреА рд▓рд╛рднрджрд╛рдпрдХ рд╣реБрдиреНрдЫрдиреНред

рддрд░ рдврд┐рд▓реЛ рд╡рд╛ рдЪрд╛рдБрдбреЛ, рдЯреЛрд▓реА рдмрдвреНрджреИ рдЬрд╛рдБрджрд╛, рдЗрди-рд╣рд╛рдЙрд╕ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдердк рд▓рд╛рднрджрд╛рдпрдХ рд╣реБрдиреЗрдЫрдиреНред рдпреА рдирд┐рд░реНрдгрдпрд╣рд░реВрдорд╛ рдПрдЙрдЯрд╛ рд╕рдорд╕реНрдпрд╛ рдЫред рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░рдорд╛ рдкреНрд░рддрд┐рдлрд▓ рдШрдЯрд╛рдЙрдиреЗ рдирд┐рдпрдо рдЫ: рдХреБрдиреИ рдкрдирд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛, рдкреНрд░рддреНрдпреЗрдХ рдкрдЫрд┐рдХреЛ рд╕реБрдзрд╛рд░ рдердк рд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдЫ рд░ рдердк рд░ рдЕрдзрд┐рдХ рд▓рдЧрд╛рдиреА рдЖрд╡рд╢реНрдпрдХ рдЫред

рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░рд▓реЗ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рд╕рд╣рд┐рдд рд╣рд╛рдореНрд░реЛ рд╕рдореНрдкреВрд░реНрдг рдЬреАрд╡рдирдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред рдореИрд▓реЗ рд╣рд╛рдореНрд░реЛ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╢реНрд░рдо рд▓рд╛рдЧрддрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдХреЛ рдЫреБред

рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрдорд╛ CI рдХреЛ рд╡рд┐рдХрд╛рд╕

рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдХреБрдиреИ рдкрдирд┐ рд╕реБрдзрд╛рд░ рдЕрдзрд┐рдХ рд░ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реБрдБрджреИрдЫред рдпреЛ рдЧреНрд░рд╛рдл рд╣реЗрд░реЗрд░, рддрдкрд╛рдЗрдБ рдмреБрдЭреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рдЯреЛрд▓реАрдХреЛ рдЖрдХрд╛рд░рдХреЛ рд╡реГрджреНрдзрд┐ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рджреБрдИ рд╡реНрдпрдХреНрддрд┐рдХреЛ рдЯреЛрд▓реАрдХреЛ рд▓рд╛рдЧрд┐, рдЖрдиреНрддрд░рд┐рдХ рдЗрдореБрд▓реЗрдЯрд░ рдлрд╛рд░реНрдо рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди 50 рджрд┐рди рдЦрд░реНрдЪ рдЧрд░реНрдиреБ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реЛред рддрд░ рдПрдХреИ рд╕рдордпрдорд╛, рдПрдХ рдареВрд▓реЛ рдЯреЛрд▓реАрдХреЛ рд▓рд╛рдЧрд┐, рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рдирдЧрд░реНрдиреБ рдкрдирд┐ рдирд░рд╛рдореНрд░реЛ рд╡рд┐рдЪрд╛рд░ рд╣реЛ, рдХрд┐рдирднрдиреЗ рдПрдХреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛рд╣рд░реВ, рд╕рдЮреНрдЪрд╛рд░ рдлрд┐рдХреНрд╕рд┐рдЩ, рдЖрджрд┐ред рдпрд╕рд▓реЗ рдЕрдЭ рдмрдвреА рд╕рдордп рд▓рд┐рдиреЗрдЫред

рд╣рд╛рдореАрд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреНрдиреЗ рд╡рд┐рдЪрд╛рд░рдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реНрдпреМрдВ рдХрд┐рдирднрдиреЗ рдорд╛рдирд┐рд╕рд╣рд░реВ рдорд╣рдБрдЧреЛ рдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЧрд▓реНрддреА рдЧрд░реНрдЫрдиреН рд░ рдЕрд▓реНрдЫреА рдЫрдиреНред рддрд░ рдорд╛рдирд┐рд╕рд╣рд░реВ рдкрдирд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЫрдиреНред рддреНрдпрд╕рдХрд╛рд░рдг, рд╕рдмреИ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рдирдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреНред

  • рд╕реНрд╡рдЪрд╛рд▓рди рдорд╣рдБрдЧреЛ рдЫред рд╢реНрд░рдо рддрд╛рд▓рд┐рдХрд╛ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реНред
  • рдЬрдм рд╕реНрд╡рдЪрд╛рд▓рдирдХреЛ рдХреБрд░рд╛ рдЖрдЙрдБрдЫ, рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рдЧрд▓реНрддреА рдЧрд░реНрдЫрдиреНред
  • рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдпреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрди рдзреЗрд░реИ рдЕрд▓реНрдЫреА рд╣реБрдиреНрдЫ, рдХрд┐рдирдХрд┐ рд╕рдмреИ рдХреБрд░рд╛ рддреНрдпрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫред рдЕрд░реБ рдХреЗрд╣рд┐ рд╕реБрдзрд╛рд░ рдХрд┐рди, рдХрд┐рди рдпреЛ рд╕рдмреИ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг?

рддрд░ рдорд╕рдБрдЧ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдЫрдиреН: 20% рд╕рднрд╛рд╣рд░реВрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╕рдорд╛рддрд┐рдПрдХрд╛ рдЫрдиреНред рд░ рдпреЛ рд╣реЛрдЗрди рдХрд┐рдирднрдиреЗ рд╣рд╛рдореНрд░рд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдХреЛрдб рдЦрд░рд╛рдм рд▓реЗрдЦреНрдЫрдиреНред рдпреЛ рдХрд┐рдирднрдиреЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рд╡рд┐рд╢реНрд╡рд╕реНрдд рдЫрдиреН рдХрд┐ рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХреЗрд╣реА рдЧрд▓реНрддреА рдЧрд░реЗ, рдпреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫреИрди, рдпреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрд╛рдБрдЪ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рддрд┐рдиреЗрдЫред рддрджрдиреБрд╕рд╛рд░, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдХреЗрд╣рд┐ рдЪрд▓рд╛рдЙрди рд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдХреЛрдб рд░ рд░реЛрдЪрдХ рдЪреАрдЬрд╣рд░реВ рд▓реЗрдЦреНрди рдмрдвреА рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред

рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрд░ рд╕рдВрдпрдорддрд╛рдорд╛ред

рд╡реИрд╕реЗ, Nikolai Nesterov рди рдХреЗрд╡рд▓ рдорд╣рд╛рди рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ рдЖрдлреИрдВ рджрд┐рдиреНрдЫ, рддрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд┐рддрд┐рдХреЛ рд╕рджрд╕реНрдп рдкрдирд┐ рд╣реЛред AppsConf рд░ рдЕрд░реВрд▓рд╛рдИ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдердкреВрд░реНрдг рднрд╛рд╖рдгрд╣рд░реВ рддрдпрд╛рд░ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред рдЕрд░реНрдХреЛ рд╕рдореНрдореЗрд▓рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкреВрд░реНрдгрддрд╛ рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдорд╛ рд╡рд┐рд╖рдпрд╣рд░реБ рджреНрд╡рд╛рд░рд╛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рддрд╛рд▓рд┐рдХрд╛ред рд░ рд╡рд┐рд╡рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдЕрдкреНрд░рд┐рд▓ 22-23 рдорд╛ Infospace рдорд╛ рдЖрдЙрдиреБрд╣реЛрд╕реНред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди