рдХреНрдпрд╛ рдХреЛрдб рдХреЗ рдмрд╛рдж рдЬреАрд╡рди рд╣реИ?

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

рдпрд╣ рдкрд╛рда рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдмрд┐рдЫрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирдП рд╣реИрдВред рд╕рд╛рде рд╣реА, рдпрд╣ рдкрд╛рда рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рддреИрдирд╛рддреА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВред

рд▓реЗрдЦ Aori рдХрдВрдкрдиреА рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЧреЛрд╖реНрдареА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдирд╛рддреА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред


рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рддреИрдирд╛рддреА?


рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдиреНрдирд┐рдХрдЯрди рдореЗрдВ, рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЕрдиреВрдард╛ рдХрд╛рд░реНрдп рд╣реИ - рд▓рд┐рдЦрд┐рдд рдХреЛ рдХрд╣реАрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣реА рд╣реИ, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓, рдЗрд╕реЗ ftp рдпрд╛ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред
NB рдпрджрд┐ рдЖрдк ftp рдкрд░ рдЬрд╡рд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдЗрдЯ рдЕрдкрдбреЗрдЯ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рднреА рдПрдХ рддреИрдирд╛рддреА рд╣реИред

рдЖрдЬ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реАрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рд┐рдирдХреНрд╕, рдПрдХ рдХрдВрд╕реЛрд▓ рд╣реИ, рдФрд░ рд╣рдо рд╕рдм рдХреБрдЫ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧреА:

  1. рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреИрдХ рдХрд░реЗрдВ
  2. рдЗрд╕реЗ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рджреВрд░рд╕реНрде рдорд╢реАрди рдкрд░ рднреЗрдЬреЗрдВ
  3. рдЗрд╕реЗ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдЬрд┐рд╕ рдкрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдорд╛рдЙрдВрдЯ рд╣реИред


рдПрдХ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИ


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

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

рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ - рдЧрдгрдирд╛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдП рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдирд╛рдо рдХрд╛ рд╕рд┐рдореНрдмрд▓ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ:
  1. рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреА рдУрд░ рд╕реЗ рд╣рдо ssh рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕реНрдХрд░рдгред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде, рд╣рдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣рд╛рдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рддреЗ рд╣реИрдВред
  2. рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдирд╛рдо рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░рд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЗрд╕ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╕рд┐рдВрдкрд▓ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╣реИред

ln -nsf /home/project/versions/{0} /home/project/current 

рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рдЧрдгрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдПрдХ рдФрд░ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░


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

рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдХреБрдЫ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рддреЛ рдЧрдгрдирд╛ рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджреВрд░рд╕реНрде рдорд╢реАрди рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рдХрджрдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдВрдЧреЗ:
  1. рдореБрдХрд╛рдмрд▓рд╛ рдХреЙрдиреНрдлрд┐рдЧ рд░реЛрд▓ рдЕрдк рдХрд░реЗрдВ
  2. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреИрдХ рдХрд░реЗрдВ
  3. рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
  4. рдПрдХ рдирдП рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЦреЛрд▓рдирд╛
  5. рд╕рд┐рдорд▓рд┐рдВрдХ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ

рдпрджрд┐ рдХрд┐рд╕реА рднреА рдЪрд░рдг рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рд░реЛрдХреЗрдВред

рд╕реНрд╡рдЪрд╛рд▓рди


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

Aori рдореЗрдВ, рд╣рдо рдЕрдВрддрд┐рдо рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдлреИрдмреНрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХрд╛рд░рдЦрд╛рдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:

 @parallel @roles('web', 'script', 'static') def switch(id): run('ln -nsf /home/project/versions/{0} /home/project/current'.format(id)) @roles('script') def crontab(id): run('crontab /home/project/versions/{0}/build/crontab'.format(id)) @parallel @roles('web', 'script', 'static') def clear(id): with cd('/home/project/versions'): run("ls -1 | grep -E '^[0-9]+$' | sort -n | head -n -3 | xargs -rt rm -rf") def deploy(id): execute(prepare) execute(upload) execute(upload_static, id) execute(build, id) execute(migrate, id) execute(switch, id) execute(crontab, id) execute(clear, id) 


рдЧрд┐рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛


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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рднреА рдХрд╣реАрдВ рдмрд╛рд╣рд░ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдЕрд▓рдЧ рдлреИрдХреНрдЯрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдФрд░ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рдмрд┐рдЫрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдмрдврд╝ рд░рд╣реА рд╣реИред

  1. рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдЦрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред
  2. рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдирдВрдмрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
  3. рд╕рд╛рдЭрд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЗрд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ
  4. рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ рдХрд░реЗрдВ
  5. рдЗрд╕ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
  6. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреИрдХ рдХрд░реЗрдВ
  7. рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЗ рд╕рдВрдЧрдд рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░ рдбрд╛рд▓реЛ
  8. рдПрдХ рдирдП рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЦреЛрд▓рдирд╛
  9. рд╕рд┐рдорд▓рд┐рдВрдХ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ

рдпрджрд┐ рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рд░реЛрдХреЗрдВред

рдЦреИрд░, рдЬрдм рд╕реЗ рд╣рдо рд╕рдм рдХреБрдЫ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддрдм
  1. рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрддреНрдкрд╛рджрди рдорд╢реАрдиреЛрдВ рдкрд░ ssh рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
  2. рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрддреНрдкрд╛рджрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
  3. рддреИрдирд╛рддреА рд╢рд╛рдЦрд╛ рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рд╣рдореЗрд╢рд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ
  4. рдпрджрд┐ рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдореЗрд▓ рдореЗрдВ рдПрдХ рдкрддреНрд░ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдФрд░ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдЕрдХрд▓реНрдкрдиреАрдп рд╣реИред

рдПрдХ рдФрд░ рдЙрдкрдХрд░рдг


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

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

рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


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

рдпрд╣рд╛рдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рдЙрдВрдЧрд▓реА рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ:
phing build - рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
phing gerrit-phpcs - рдХреЛрдб рдорд╛рдирдХреЛрдВ рдХреА рдЬрд╛рдБрдЪ
phing copy-production-configs - рдмрдВрдж рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдорд╢реАрдиреЛрдВ рдХреЗ phing copy-production-configs
phing write-version - рд╡рд░реНрддрдорд╛рди рдЕрд╕реЗрдВрдмрд▓реА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВред

рдФрд░ рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рдкреВрд░рд╛ рдкрде рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдЦрд╛ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рддрдХ рд╣реИ:

рдЙрдВрдЧрд▓реА рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рд╕реНрдерд╛рдиреАрдп рдЬреЗрдирдХреАрдВрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реЛрддреА рд╣реИрдВ:
  1. рдЪреЗрдХрдЖрдЙрдЯ рд╢рд╛рдЦрд╛рдПрдБ рдмрдирд╛рдирд╛
  2. рд╣рдо рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЗрд╕ рдПрдХ (рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рд╣реА рдХрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА, рдЬреЗрдирдХрд┐рдВрд╕ рдПрдкреА рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдХреЗ рдмреАрдЪ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
  3. рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ js рдЖрд╡реЗрджрди рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ
  4. рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдкрд░реАрдХреНрд╖рдг рдЖрдзрд╛рд░ рдмрдирд╛рдПрдВред рдпрд╣ рдЖрдкрдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  5. рд╣рдо рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЖрдзрд╛рд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЙрдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкрд▓рд╛рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ
  6. рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ
  7. рдЖрдзрд╛рд░ рд╣рдЯрд╛рдУ
  8. рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВ
  9. рд╣рдо рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  10. рд╣рдо рдХрд╛рд░рдЦрд╛рдиреЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ

рдХрд╛рд░рдЦрд╛рдирд╛ рдЕрдВрддрд┐рдо рдорд╢реАрдиреЛрдВ рдХреЛ рдХреЛрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
  1. рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ
  2. рд╣рдо рдХрд╛рд░реЛрдВ рдкрд░ рд▓реЗрдЯ рдЧрдП
  3. рд╣рдо рдкрд▓рд╛рдпрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
  4. рд╕рд┐рдорд▓рд┐рдВрдХ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ
  5. Crontab рдЕрджреНрдпрддрди рдХрд░рдирд╛
  6. рдкрд┐рдЫрд▓реЗ рддреАрди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдВ


Kodrevyu


рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдХреЛрдб рдирд┐рд░реАрдХреНрд╖рдг рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

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

рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣рдо рдЧреЗрд░рд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЧреЗрд░рд┐рдЯ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ git рдХреЗ рд╕рд╛рде рдШрдирд┐рд╖реНрдарддрд╛ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, git рд╕рд░реНрд╡рд░ рдмрдирддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЧреЗрд░рд┐рдЯ рдХреЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рди рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдСрдбрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЧрд┐рдЯ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рд╛рдорд╛рдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реАрдзреЗ рд╡рд┐рдХрд╛рд╕ рдпрд╛ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдзрдХреНрдХрд╛ рджреЗрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд╡реЗ рдХреЗрд╡рд▓ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЪреЗрдВрдЬрд╕реЗрдЯ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ git review
NB , , - , . , , submit , git review.

-. , : " , " . - .


, - . , github . , , , - , , , .


Jenkins - Wikipedia
Jenkins + Python -
Gerrit - Wikipedia
Gerrit -
Fabric -
Fabric
Phing -
Phing
Continuous Integration - Wikipedia

git review
NB , , - , . , , submit , git review.

-. , : " , " . - .


, - . , github . , , , - , , , .


Jenkins - Wikipedia
Jenkins + Python -
Gerrit - Wikipedia
Gerrit -
Fabric -
Fabric
Phing -
Phing
Continuous Integration - Wikipedia

git review
NB , , - , . , , submit , git review.

-. , : " , " . - .


, - . , github . , , , - , , , .


Jenkins - Wikipedia
Jenkins + Python -
Gerrit - Wikipedia
Gerrit -
Fabric -
Fabric
Phing -
Phing
Continuous Integration - Wikipedia

git review
NB , , - , . , , submit , git review.

-. , : " , " . - .


, - . , github . , , , - , , , .


Jenkins - Wikipedia
Jenkins + Python -
Gerrit - Wikipedia
Gerrit -
Fabric -
Fabric
Phing -
Phing
Continuous Integration - Wikipedia

git review
NB , , - , . , , submit , git review.

-. , : " , " . - .


, - . , github . , , , - , , , .


Jenkins - Wikipedia
Jenkins + Python -
Gerrit - Wikipedia
Gerrit -
Fabric -
Fabric
Phing -
Phing
Continuous Integration - Wikipedia

Source: https://habr.com/ru/post/In215601/


All Articles