werf 1.1 рд░рд┐рд▓реАрдЬ: рдЖрдЬ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдорд╛ рд╕реБрдзрд╛рд░рд╣рд░реВ рд░ рднрд╡рд┐рд╖реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛рд╣рд░реВ

werf 1.1 рд░рд┐рд▓реАрдЬ: рдЖрдЬ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдорд╛ рд╕реБрдзрд╛рд░рд╣рд░реВ рд░ рднрд╡рд┐рд╖реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛рд╣рд░реВ

рд╡рд╛рдл Kubernetes рдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рд░ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд GitOps CLI рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реЛред рдкреНрд░рддрд┐рдЬреНрдЮрд╛ рдЕрдиреБрд╕рд╛рд░, рд╕рдВрд╕реНрдХрд░рдг v1.0 рдХреЛ рд░рд┐рд▓реАрдЬ werf рдорд╛ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдердкреНрдиреЗ рд░ рдкрд░рдореНрдкрд░рд╛рдЧрдд рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЗрдпреЛред рдЕрдм рд╣рд╛рдореА рд░рд┐рд▓рд┐рдЬ v1.1 рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрди рдкрд╛рдЙрдБрджрд╛ рдЦреБрд╕реА рдЫреМрдВ, рдЬреБрди рд╡рд┐рдХрд╛рд╕рдорд╛ рдареВрд▓реЛ рдХрджрдо рд░ рднрд╡рд┐рд╖реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд╛рд░ рд╣реЛ рдХрд▓реЗрдХреНрдЯрд░ werfред рд╕рдВрд╕реНрдХрд░рдг рд╣рд╛рд▓ рдорд╛ рдЙрдкрд▓рдмреНрдз рдЫ рдЪреНрдпрд╛рдирд▓ 1.1 ea.

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

рдХрд╛рд░реНрдпрдХреЛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд▓реЗ рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рдЧрдгрдирд╛ рдЧрд░реНрдиреЗ рдЪрд░рдгрдорд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЧрдгрдирд╛рд╣рд░реВрдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрдиреБ рд░ рдлрд╛рдЗрд▓ рдЪреЗрдХрд╕рдорд╣рд░реВ рдЧрдгрдирд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдВрдпрдиреНрддреНрд░рд╣рд░реВрд▓рд╛рдИ рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдмрдирд╛рдЙрдиреБ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдпреЛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд▓реЗ werf рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдгрдХреЛ рдФрд╕рдд рд╕рдордп рдШрдЯрд╛рдЙрдБрдЫред рд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдмрдирд╛рдЙрдБрдЫ, рдЬрдм рд╕рдмреИ рдЪрд░рдгрд╣рд░реВ рдХреНрдпрд╛рд╕рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╣реБрдиреНрдЫрдиреН рдЪрд░рдгрд╣рд░реВ - рднрдгреНрдбрд╛рд░рдг, рдЕрдм рд╕рд╛рдБрдЪреНрдЪреИ рдЫрд┐рдЯреЛ рдЫрдиреНред рдзреЗрд░реИ рдЬрд╕реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдирд┐рд░реНрдорд╛рдг рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди 1 рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдХрдо рд╕рдордп рд▓рд╛рдЧреНрдиреЗрдЫ! рдпреЛ рдЯреЛрд▓реАрдХреЛ рдХрд╛рдордХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдЪрд░рдгрд╣рд░реВ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ рдкрдирд┐ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред werf deploy ╨╕ werf run.

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

werf v1.1 рдорд╛ рдкреНрд░рдореБрдЦ рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реМрдВ, рд░ рдПрдХреИ рд╕рдордпрдорд╛ рднрд╡рд┐рд╖реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛рд╣рд░реВ рдмрд╛рд░реЗ рдмрддрд╛рдЙрдиреБрд╣реЛрд╕реНред

werf v1.1 рдорд╛ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫ?

рдирдпрд╛рдБ рдЪрд░рдг рдирд╛рдордХрд░рдг рдврд╛рдБрдЪрд╛ рд░ рдХреНрдпрд╛рд╕рдмрд╛рдЯ рдЪрд░рдгрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

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

рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдкреВрд░реНрдг рдЪрд░рдг рдЫрд╡рд┐ рдирд╛рдо рдпрд╕реНрддреЛ рджреЗрдЦрд┐рди рд╕рдХреНрдЫ:

werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835

...рд╡рд╛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛:

werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC

рдпрд╣рд╛рдБ:

  • SIGNATURE рдПрдХ рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЛ, рдЬрд╕рд▓реЗ рд╕реНрдЯреЗрдЬ рд╕рд╛рдордЧреНрд░реАрдХреЛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрджрдЫ рд░ Git рдорд╛ рд╕рдореНрдкрд╛рджрдирдХреЛ рдЗрддрд┐рд╣рд╛рд╕рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдпреЛ рд╕рд╛рдордЧреНрд░реАрд▓рд╛рдИ рдиреЗрддреГрддреНрд╡ рдЧрд░реНрдпреЛ;
  • TIMESTAMP_MILLISEC рдПрдЙрдЯрд╛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░рд┐рдПрдХреЛ рдЕрджреНрд╡рд┐рддреАрдп рдЫрд╡рд┐ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛ рдЬреБрди рдирдпрд╛рдБ рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рд╣реБрдБрджрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫред

рдХреНрдпрд╛рд╕рдмрд╛рдЯ рдЪрд░рдгрд╣рд░реВ рдЪрдпрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо Git рдХрдорд┐рдЯрд╣рд░реВрдХреЛ рд╕рдореНрдмрдиреНрдз рдЬрд╛рдБрдЪрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ:

  1. Werf рд▓реЗ рдирд┐рд╢реНрдЪрд┐рдд рдЪрд░рдгрдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫред
  2. ╨Т рдЪрд░рдгрд╣рд░реВ - рднрдгреНрдбрд╛рд░рдг рджрд┐рдЗрдПрдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдЪрд░рдгрд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреНред Werf рд▓реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреЗ рд╕рдмреИ рдЪрд░рдгрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджрдЫред
  3. рдпрджрд┐ рд╣рд╛рд▓рдХреЛ рдЪрд░рдг Git рдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рдЫ (git-рд╕рдВрдЧреНрд░рд╣, Git рдкреНрдпрд╛рдЪрд╣рд░реВрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рди рдЪрд░рдг: install, beforeSetup, setup; рд╡рд╛ git-latest-patch), рддреНрдпрд╕рдкрдЫрд┐ werf рд▓реЗ рддреА рдЪрд░рдгрд╣рд░реВ рдорд╛рддреНрд░ рдЪрдпрди рдЧрд░реНрджрдЫ рдЬреБрди рдкреНрд░рддрд┐рдмрджреНрдзрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ рдЬреБрди рд╣рд╛рд▓рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдХреЛ рдкреВрд░реНрд╡рдЬ рд╣реЛ (рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдорд╛рдг рднрдирд┐рдиреНрдЫ)ред
  4. рдмрд╛рдБрдХреА рдЙрдкрдпреБрдХреНрдд рдЪрд░рдгрд╣рд░реВрдмрд╛рдЯ, рдПрдЙрдЯрд╛ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ - рд╕рд┐рд░реНрдЬрдирд╛ рдорд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдмреИрднрдиреНрджрд╛ рдкреБрд░рд╛рдиреЛред

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

тЖТ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг.

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

рдпрджрд┐, рдХреНрдпрд╛рд╕рдмрд╛рдЯ рдЪрд░рдгрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджрд╛, werf рд▓реЗ рдЙрдкрдпреБрдХреНрдд рдЪрд░рдг рдлреЗрд▓рд╛ рдкрд╛рд░реЗрди рднрдиреЗ, рдирдпрд╛рдБ рдЪрд░рдг рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫред

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

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

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

тЖТ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг.

рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ Dockerfile рдмрд┐рд▓реНрдбрд░ рдкреНрд░рджрд░реНрд╢рди

рдпрд╕ рд╕рдордпрдорд╛, рдбрдХрд░рдлрд╛рдЗрд▓рдмрд╛рдЯ рдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐рдХреЛ рд▓рд╛рдЧрд┐ рдЪрд░рдгрд╣рд░реВрдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рдПрдХ рдЪрд░рдг рд╣реБрдиреНрдЫ - dockerfileред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЧрдгрдирд╛ рдЧрд░реНрджрд╛, рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдЪреЗрдХрд╕рдо рдЧрдгрдирд╛ рдЧрд░рд┐рдиреНрдЫ context, рдЬреБрди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕рдордпрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫред рдпреЛ рд╕реБрдзрд╛рд░ рдЧрд░реНрдиреБ рдЕрдШрд┐, werf рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдмреИ рдлрд╛рдЗрд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рд╣рд┐рдВрдбреНрдпреЛ рд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рд░ рдореЛрдб рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реЗрд░ рдЪреЗрдХрд╕рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреЛред v1.1 рдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрджреИ, werf рд▓реЗ Git рднрдгреНрдбрд╛рд░рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХрд╛ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдЪреЗрдХрд╕рдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ git ls-рдЯреНрд░реАред рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЦрд╛рддрд╛ рд░реЗрдХрд░реНрдб рдорд╛ рд▓рд┐рдиреНрдЫ .dockerignore рд░ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛ рдорд╛рддреНрд░ рдлрд╛рдЗрд▓ рдЯреНрд░реАрд▓рд╛рдИ рджреЛрд╣реЛрд░рд┐рдиреЗ рдЧрд░реА рдкрд╛рд░ рдЧрд░реНрджрдЫред рдпрд╕рд░реА, рд╣рд╛рдореАрд▓реЗ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдкрдвреНрдирдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рд░ рд╕рд╛рдЗрдЬрдорд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдордХреЛ рдирд┐рд░реНрднрд░рддрд╛ред context рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрдиред

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

рдлрд╛рдЗрд▓рд╣рд░реВ рдЖрдпрд╛рдд рдЧрд░реНрджрд╛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдкреНрд░рджрд░реНрд╢рди

werf v1.1 рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрд▓реЗ rsync рд╕рд░реНрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ рд░ рдЫрд╡рд┐рд╣рд░реВрдмрд╛рдЯ рдлрд╛рдЗрд▓рд╣рд░реВ рдЖрдпрд╛рдд рдЧрд░реНрджреИред рдкрд╣рд┐рд▓реЗ, рдЖрдпрд╛рдд рджреБрдИ рдЪрд░рдгрд╣рд░реВрдорд╛ рд╣реЛрд╕реНрдЯ рдкреНрд░рдгрд╛рд▓реАрдмрд╛рдЯ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдорд╛рдЙрдиреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЧрд░рд┐рдиреНрдереНрдпреЛред

macOS рдорд╛ рдЖрдпрд╛рдд рдкреНрд░рджрд░реНрд╢рди рдЕрдм рдбрдХрд░ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдЫреИрди, рд░ рд▓рд┐рдирдХреНрд╕ рд░ рд╡рд┐рдиреНрдбреЛрдЬ рдЬрд╕реНрддреИ рд╕рдордпрдХреЛ рд╕рдорд╛рди рдорд╛рддреНрд░рд╛рдорд╛ рдЖрдпрд╛рдд рдкреВрд░рд╛ рд╣реБрдиреНрдЫред

рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреНрдпрд╛рдЧрд┐рдЩ

Werf v1.1 рдЫрд╡рд┐ рд╕рд╛рдордЧреНрд░реА рджреНрд╡рд╛рд░рд╛ рддрдерд╛рдХрдерд┐рдд рдЯреНрдпрд╛рдЧрд┐рдЩ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ - рд╕рд╛рдордЧреНрд░реА рдЖрдзрд╛рд░рд┐рдд рдЯреНрдпрд╛рдЧрд┐рдЩред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВрдХреЛ рдЯреНрдпрд╛рдЧрд╣рд░реВ рддреА рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░ рд╣реБрдиреНрдЫрдиреНред

рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдБрджрд╛ werf publish --tags-by-stages-signature рд╡рд╛ werf ci-env --tagging-strategy=stages-signature рддрдерд╛рдХрдерд┐рдд рддрд╕реНрдмрд┐рд░рд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЫрд╡рд┐ред рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐рд▓рд╛рдИ рдпрд╕ рдЫрд╡рд┐рдХреЛ рдЪрд░рдгрд╣рд░реВрдХреЛ рдЖрдлреНрдиреИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХреЛ рд╕рд╛рде рдЯреНрдпрд╛рдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдгрдХреЛ рдирд┐рдпрдорд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХреЛ рд░реВрдкрдорд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рдпрдорд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рдЧрдгрдирд╛ рдЧрд░рд┐рдиреНрдЫ, рддрд░ рдЫрд╡рд┐рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛред

рдЫрд╡рд┐ рдЪрд░рдгрд╣рд░реВрдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ:

  1. рдпреЛ рдЫрд╡рд┐ рдХреЛ рд╕рд╛рдордЧреНрд░реА;
  2. Git рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдЗрддрд┐рд╣рд╛рд╕ рдЬрд╕рд▓реЗ рдпреЛ рд╕рд╛рдордЧреНрд░реАрд▓рд╛рдИ рдиреЗрддреГрддреНрд╡ рдЧрд░реНрдпреЛред

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

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

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

рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг: рдЕрдм рджреЗрдЦрд┐ рд╕реБрд░реБ рдЪрд░рдгрд╣рд░реВ - рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЛ рдорд╛рддреНрд░ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЯреНрдпрд╛рдЧрд┐рдЩ рд░рдгрдиреАрддрд┐ред рдпреЛ рдЖрджреЗрд╢рдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫ werf ci-env (рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдлрд░рдХ рдЯреНрдпрд╛рдЧрд┐рдЩ рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирдЧрд░реЗрд╕рдореНрдо)ред

тЖТ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдгред рдпрд╕ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЫреБрдЯреНрдЯреИ рдкреНрд░рдХрд╛рд╢рди рдкрдирд┐ рд╕рдорд░реНрдкрд┐рдд рд╣реБрдиреЗрдЫред рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ (рдЕрдкреНрд░рд┐рд▓ рей): рд╡рд┐рд╡рд░рдг рд╕рд╣рд┐рддрдХреЛ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рднрдпреЛ.

рд▓рдЧрд┐рдЩ рд╕реНрддрд░рд╣рд░реВ

рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕рдБрдЧ рдЕрдм рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрдиреЗ, рд▓рдЧрд┐рдЩ рд╕реНрддрд░ рд╕реЗрдЯ рдЧрд░реНрдиреЗ рд░ рдбрд┐рдмрдЧрд┐рдЩ рдЬрд╛рдирдХрд╛рд░реАрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░ рдЫред рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдердкрд┐рдпреЛ --log-quiet, --log-verbose, --log-debug.

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдЖрдЙрдЯрдкреБрдЯрд▓реЗ рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ:

werf 1.1 рд░рд┐рд▓реАрдЬ: рдЖрдЬ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдорд╛ рд╕реБрдзрд╛рд░рд╣рд░реВ рд░ рднрд╡рд┐рд╖реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛рд╣рд░реВ

рд╡рд░реНрдмреЛрдЬ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ (--log-verbose) рддрдкрд╛рдИрд▓реЗ werf рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

werf 1.1 рд░рд┐рд▓реАрдЬ: рдЖрдЬ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдорд╛ рд╕реБрдзрд╛рд░рд╣рд░реВ рд░ рднрд╡рд┐рд╖реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛рд╣рд░реВ

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

werf 1.1 рд░рд┐рд▓реАрдЬ: рдЖрдЬ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдорд╛ рд╕реБрдзрд╛рд░рд╣рд░реВ рд░ рднрд╡рд┐рд╖реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛрдЬрдирд╛рд╣рд░реВ

рднрд╛рд╡реА рдпреЛрдЬрдирд╛рд╣рд░реВ

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

рд╡рд┐рднрд┐рдиреНрди рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди (рдирдпрд╛рдБ)

рд▓рдХреНрд╖реНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ werf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдкреНрд░рддрд┐рдмрдиреНрдз рдмрд┐рдирд╛ рдЕрдиреБрдХреВрд▓рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╣реЛред

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

  • рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд (рдкреБрд╕реНрддрдХрд╛рд▓рдп/рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА)*,
  • AWS ECR
  • рдиреАрд▓рд╛*,
  • рдбрдХрд░ рд╣рдм
  • GCR*,
  • GitHub рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ
  • GitLab рд░рдЬрд┐рд╕реНрдЯреНрд░реА*,
  • рдмрдиреНрджрд░рдЧрд╛рд╣*,
  • рдХреНрд╡реЗред

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

рджреБрдИ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

  • рдХреЗрд╣реА рд╕рдорд╛рдзрд╛рдирд╣рд░реВрд▓реЗ рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдПрдкреАрдЖрдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЯреНрдпрд╛рдЧ рд╣рдЯрд╛рдЙрдиреЗ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ werf рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдмрд╛рдЯ рд░реЛрдХреНрджреИред рдпреЛ AWS ECR, Docker Hub, рд░ GitHub рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рддреНрдп рд╣реЛред
  • рдХреЗрд╣реА рд╕рдорд╛рдзрд╛рдирд╣рд░реВрд▓реЗ рддрдерд╛рдХрдерд┐рдд рдиреЗрд╕реНрдЯреЗрдб рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрд╣рд░реВ (рдбрдХрд░ рд╣рдм, GitHub рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд░ рдХреНрд╡реЗ) рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдирдиреН, рддрд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ UI рд╡рд╛ API (AWS ECR) рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рд╣рд╛рдореА рдпреА рд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рдирдХреЛ рдиреЗрдЯрд┐рдн API рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЬрд╛рдБрджреИрдЫреМрдВред рдпреЛ рдХрд╛рд░реНрдпрд▓реЗ рддреА рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рд╕рд╣рд┐рдд werf рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдкреВрд░реНрдг рдЪрдХреНрд░рд▓рд╛рдИ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рд╡рд┐рддрд░рд┐рдд рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг (тЖС)

  • рд╕рдВрд╕реНрдХрд░рдг: v1.2 v1.1 (рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрдврд╛рдЗрдПрдХреЛ рдЫ)
  • рдорд┐рддрд┐рд╣рд░реВ: рдорд╛рд░реНрдЪ-рдЕрдкреНрд░рд┐рд▓ рдорд╛рд░реНрдЪ
  • рдореБрджреНрджрд╛

рдпрд╕ рд╕рдордпрдорд╛, werf v1.0 рд░ v1.1 рдЫрд╡рд┐рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рд░ рдкреНрд░рдХрд╛рд╢рди рдЧрд░реНрдиреЗ рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ Kubernetes рдорд╛ рдбрд┐рдкреНрд▓реЛрдЗ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рд╕рдорд░реНрдкрд┐рдд рд╣реЛрд╕реНрдЯрдорд╛ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

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

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

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

GitHub рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд░реНрдерди (рдирдпрд╛рдБ)

werf рдХрд╛рдЧрдЬрд╛рдд рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ (рдЦрдгреНрдбрд╣рд░реВ рд╕рдиреНрджрд░реНрдн ╨╕ рдбреЛрд░рд╝реНрдпрд╛рдЙрди), рд╕рд╛рдереИ werf рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ GitHub рдХрд╛рд░реНрдпред

рдердк рд░реВрдкрдорд╛, рдпрд╕рд▓реЗ werf рд▓рд╛рдИ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдзрд╛рд╡рдХрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

CI рдкреНрд░рдгрд╛рд▓реАрд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдореЗрдХрд╛рдирд┐рдХреНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдирд┐рд░реНрдорд╛рдг/рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрди рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрди рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рд▓реЗрдмрд▓рд╣рд░реВ рд░рд╛рдЦреНрдирдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╣реБрдиреЗрдЫред

рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рд░ werf (тЖУ) рд╕рдБрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рддреИрдирд╛рддреА

  • рд╕рдВрд╕реНрдХрд░рдг: v1.1
  • рдорд┐рддрд┐рд╣рд░реВ: рдЬрдирд╡рд░реА-рдлреЗрдмреНрд░реБрдЕрд░реА рдЕрдкреНрд░рд┐рд▓
  • рдореБрджреНрджрд╛

рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рднрдиреЗрдХреЛ рдмрдХреНрд╕ рдмрд╛рд╣рд┐рд░, рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрд╣рд░реВ рдмрд┐рдирд╛, рд╕реНрдерд╛рдиреАрдп рд░ рдЙрддреНрдкрд╛рджрдирдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХрд▓ рдПрдХреАрдХреГрдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБ рд╣реЛред

werf рд╕рдБрдЧ рдЕрдкрд░реЗрдЯрд┐рдЩ рдореЛрдб рд╣реБрдиреБ рдкрдирд┐ рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрд╕рдорд╛ рдПрдк рдХреЛрдб рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рд░ рдбрд┐рдмрдЧрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдмрд╛рдЯ рддреБрд░реБрдиреНрддреИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рд╣рдЬ рд╣реБрдиреЗрдЫред

рдирдпрд╛рдБ рд╕рдлрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рдирдпрд╛рдБ)

рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ werf v1.1 рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ cleanup рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреНрдпрд╛рдЧрд┐рдЩ рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЫрд╡рд┐рд╣рд░реВ рд╕рдлрд╛ рдЧрд░реНрдиреЗ рдХреБрдиреИ рдкреНрд░рд╛рд╡рдзрд╛рди рдЫреИрди - рдпреА рдЫрд╡рд┐рд╣рд░реВ рдЬрдореНрдорд╛ рд╣реБрдиреЗрдЫрдиреНред

рд╕рд╛рдереИ, werf рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг (v1.0 рд░ v1.1) рд▓реЗ рдЯреНрдпрд╛рдЧрд┐рдЩ рдпреЛрдЬрдирд╛рд╣рд░реВ рдЕрдиреНрддрд░реНрдЧрдд рдкреНрд░рдХрд╛рд╢рд┐рдд рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕рдлрд╛рдИ рдиреАрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ: Git рд╢рд╛рдЦрд╛, Git рдЯреНрдпрд╛рдЧ рд╡рд╛ Git рдХрдорд┐рдЯред

Git рдорд╛ рдХрдорд┐рдЯрдХреЛ рдЗрддрд┐рд╣рд╛рд╕рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрд╡рд┐рд╣рд░реВ рд╕рдлрд╛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо, рд╕рдмреИ рдЯреНрдпрд╛рдЧрд┐рдЩ рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХреАрдХреГрдд, рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ:

  • рдкреНрд░рддреНрдпреЗрдХ git HEAD (рд╢рд╛рдЦрд╛ рд░ рдЯреНрдпрд╛рдЧрд╣рд░реВ) рдХреЛ рд▓рд╛рдЧрд┐ N1 рд╕рдмреИрднрдиреНрджрд╛ рднрд░реНрдЦрд░рдХрд╛ рдХрдорд┐рдЯрд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд N2 рдЫрд╡рд┐рд╣рд░реВ рднрдиреНрджрд╛ рдмрдвреА рдирд░рд╛рдЦреНрдиреБрд╣реЛрд╕реНред
  • рдкреНрд░рддреНрдпреЗрдХ git HEAD (рд╢рд╛рдЦрд╛ рд░ рдЯреНрдпрд╛рдЧрд╣рд░реВ) рдХреЛ рд▓рд╛рдЧрд┐ N1 рд╕рдмреИрднрдиреНрджрд╛ рднрд░реНрдЦрд░рдХреЛ рдХрдорд┐рдЯрд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд N2 рдЪрд░рдг рдЫрд╡рд┐рд╣рд░реВ рднрдиреНрджрд╛ рдмрдвреА рднрдгреНрдбрд╛рд░рдг рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • рдХреБрдиреИ рдкрдирд┐ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдЫрд╡рд┐рд╣рд░реВ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рдХрд╛ рд╕рдмреИ рдХреНрдпреБрдм рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд░ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ рд╕реНрдХреНрдпрд╛рди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН; рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрд╕рдБрдЧ рдпреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реАрдорд┐рдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ)ред
  • рд╣реЗрд▓реНрдо рд░рд┐рд▓рд┐рдЬрд╣рд░реВрдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░рд┐рдПрдХрд╛ рд╕реНрд░реЛрдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдЫрд╡рд┐рд╣рд░реВ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • рдЫрд╡рд┐ рдореЗрдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рдпрджрд┐ рдпреЛ git рдмрд╛рдЯ рдХреБрдиреИ рдкрдирд┐ HEAD рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫреИрди (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХрд┐рдирднрдиреЗ рд╕рдореНрдмрдиреНрдзрд┐рдд HEAD рдЖрдлреИ рдореЗрдЯрд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ) рд░ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рд░ Helm рд░рд┐рд▓реАрдЬрд╣рд░реВрдорд╛ рдХреБрдиреИ рдкрдирд┐ manifests рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

рд╕рдорд╛рдирд╛рдиреНрддрд░ рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг (тЖУ)

  • рд╕рдВрд╕реНрдХрд░рдг: v1.1
  • рдорд┐рддрд┐рд╣рд░реВ: рдЬрдирд╡рд░реА-рдлреЗрдмреНрд░реБрдЕрд░реА рдЕрдкреНрд░рд┐рд▓*

werf рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд▓реЗ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рдЫрд╡рд┐рд╣рд░реВ рд░ рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджрдЫ werf.yaml, рдХреНрд░рдорд╢рдГред рдЫрд╡рд┐рд╣рд░реВ рд░ рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВрдХреЛ рд╕реНрд╡рддрдиреНрддреНрд░ рдЪрд░рдгрд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд╕рд╛рдереИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░ рдЬрд╛рдирдХрд╛рд░реАрдореВрд▓рдХ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реНред

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

рд╣реЗрд▓реНрдо рей (тЖУ) рдорд╛ рд╕рдВрдХреНрд░рдордг

  • рд╕рдВрд╕реНрдХрд░рдг: v1.2
  • рдорд┐рддрд┐рд╣рд░реВ: рдлреЗрдмреНрд░реБрдЕрд░реА-рдорд╛рд░реНрдЪ рдореЗ*

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

* рдиреЛрдЯ: Helm 3 рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрджрд╛ werf рдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдердкрд┐рдиреЗ рдЫреИрди, рдХрд┐рдирдХрд┐ Helm 3 рдХрд╛ рд╕рдмреИ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ (3-рдорд╛рд░реНрдЧ-рдорд░реНрдЬ рд░ рдХреБрдиреИ рдЯрд┐рд▓рд░) рдкрд╣рд┐рд▓реЗ рдиреИ werf рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдпрд╕рдмрд╛рд╣реЗрдХ, werf рдЫ рдердк рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдВрдХреЗрдд рдЧрд░реЗрдХреЛ рдмрд╛рд╣реЗрдХред рдпрджреНрдпрдкрд┐, рдпреЛ рд╕рдВрдХреНрд░рдордг рд╣рд╛рдореНрд░реЛ рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рд░рд╣рдиреНрдЫ рд░ рд▓рд╛рдЧреВ рд╣реБрдиреЗрдЫред

Kubernetes рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди (тЖУ) рд╡рд░реНрдгрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ Jsonnet

  • рд╕рдВрд╕реНрдХрд░рдг: v1.2
  • рдорд┐рддрд┐рд╣рд░реВ: рдЬрдирд╡рд░реА-рдлреЗрдмреНрд░реБрдЕрд░реА рдЕрдкреНрд░рд┐рд▓-рдореЗ

Werf рд▓реЗ Jsonnet рдврд╛рдБрдЪрд╛рдорд╛ Kubernetes рдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╡рд┐рд╡рд░рдг рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗрдЫред рдПрдХреИ рд╕рдордпрдорд╛, werf рд╣реЗрд▓реНрдорд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рд░рд╣рдиреЗрдЫ рд░ рд╡рд░реНрдгрди рдврд╛рдБрдЪрд╛рдХреЛ рдЫрдиреЛрдЯ рд╣реБрдиреЗрдЫред

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

рдЕрдиреНрдп Kubernetes рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╡рд┐рд╡рд░рдг рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Kustomize) рдкрд░рд┐рдЪрдп рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдкрдирд┐ рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рдБрджреИрдЫред

Kubernetes (тЖУ) рднрд┐рддреНрд░ рдХрд╛рдо рдЧрд░реНрджреИ

  • рд╕рдВрд╕реНрдХрд░рдг: v1.2
  • рдорд┐рддрд┐рд╣рд░реВ: рдЕрдкреНрд░рд┐рд▓-рдореЗ рдореЗ-рдЬреВрди

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

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

рдпрд╕рд▓рд╛рдИ рдбрдХрд░ рд╕рд░реНрднрд░ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдХреЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рдореЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдЪрд╛рд╣рд┐рдиреНрдЫ (рдЬрд╕реНрддреИ Kaniko-рдЬрд╕реНрддреЛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рдирдорд╛ рдирд┐рд░реНрдорд╛рдг)ред

Werf рдбрдХрд░рдлрд╛рдЗрд▓рдХреЛ рд╕рд╛рде рдорд╛рддреНрд░ рдирднрдИ рдпрд╕рдХреЛ рд╕реНрдЯреЗрдкрд▓ рдмрд┐рд▓реНрдбрд░рдХреЛ рд╕рд╛рдердорд╛ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд░ рдЙрддреНрддрд░рджрд╛рдпреАрдХреЛ рд╕рд╛рде рдХреБрдмреЗрд░рдиреЗрдЯрдорд╛ рдирд┐рд░реНрдорд╛рдгрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

рдЦреБрд▓рд╛ рд╡рд┐рдХрд╛рд╕рдХреЛ рджрд┐рд╢рд╛рдорд╛ рдПрдХ рдХрджрдо

рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рд╕рдореБрджрд╛рдпрд▓рд╛рдИ рдорд╛рдпрд╛ рдЧрд░реНрдЫреМрдВ (GitHub, рддрд╛рд░) рд░ рд╣рд╛рдореА рдзреЗрд░реИ рднрдиреНрджрд╛ рдзреЗрд░реИ рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ werf рд▓рд╛рдИ рдЕрдЭ рд░рд╛рдореНрд░реЛ рдмрдирд╛рдЙрди рдорджреНрджрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ, рд╣рд╛рдореА рдХреБрди рджрд┐рд╢рд╛рдорд╛ рдЬрд╛рдБрджреИрдЫреМрдВ, рд░ рд╡рд┐рдХрд╛рд╕рдорд╛ рд╕рд╣рднрд╛рдЧреА рд╣реБрди рдЪрд╛рд╣рдиреНрдЫреМрдВред

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

рд╕рдорд╕реНрдпрд╛рд╣рд░реБ рд╕рдВрдЧ рдзреЗрд░реИ рдХрд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫ:

  • рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣рдЯрд╛рдЗрдпреЛред
  • рдЕрд╡рд╕реНрдерд┐рддрд╣рд░реВрд▓рд╛рдИ рдПрдХрд▓ рдврд╛рдБрдЪрд╛рдорд╛ рд▓реНрдпрд╛рдЗрдПрдХреЛ рдЫ, рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╡рд░рдг рд░ рд╡рд┐рд╡рд░рдгрд╣рд░реВрдХреЛ рд╕рд╛рдеред
  • рд╡рд┐рдЪрд╛рд░ рд░ рд╕реБрдЭрд╛рд╡рдХрд╛ рд╕рд╛рде рдирдпрд╛рдБ рдореБрджреНрджрд╛рд╣рд░реВ рдердкрд┐рдПрдХрд╛ рдЫрдиреНред

рд╕рдВрд╕реНрдХрд░рдг v1.1 рдХрд╕рд░реА рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ

рд╕рдВрд╕реНрдХрд░рдг рд╣рд╛рд▓ рдорд╛ рдЙрдкрд▓рдмреНрдз рдЫ рдЪреНрдпрд╛рдирд▓ 1.1 ea (рдЪреНрдпрд╛рдирд▓рд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ ╨╕ рдвреБ rockреНрдЧрд╛ рдареЛрд╕ рд╕реНрдерд┐рд░реАрдХрд░рдг рд╣реБрдБрджрд╛ рд░рд┐рд▓реАрдЬрд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫ, рддрдерд╛рдкрд┐ ea рдЖрдлреИ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рд░ рдЫ, рдХрд┐рдирднрдиреЗ рдЪреНрдпрд╛рдирд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рдЧрдпреЛ рдЕрд▓реНрдлрд╛ ╨╕ рдмрд┐рдЯрд╛)ред рд╕рдХреНрд░рд┐рдп рдЧрд░рд┐рдпреЛ multiwerf рдорд╛рд░реНрдлрдд рдирд┐рдореНрди рддрд░рд┐рдХрд╛рдорд╛:

source $(multiwerf use 1.1 ea)
werf COMMAND ...

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдирдпрд╛рдБ рд╕реНрдЯреЗрдЬ рднрдгреНрдбрд╛рд░рдг рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд░ рд╕реНрдЯреЗрдкрд▓ рд░ рдбрдХрд░рдлрд╛рдЗрд▓ рдмрд┐рд▓реНрдбрд░реНрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдмрд┐рд▓реНрдбрд░ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд▓реЗ werf рдорд╛ рд╡рд┐рддрд░рд┐рдд рд░ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдЦреЛрд▓реНрдЫред рдпреА рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЪрд╛рдБрдбреИ рдиреИ рдЙрд╣реА v1.1 рд░рд┐рд▓реАрдЬрдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫ рд░ рд╕реНрд╡рдд:-рдЕрдкрдбреЗрдЯ рд╕рдВрдпрдиреНрддреНрд░ (рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐) рдорд╛рд░реНрдлрдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫред multiwerf).

рдпрд╕ рд╡рд┐рдореЛрдЪрдирдорд╛, рдЫрд╡рд┐ рд╕рд╛рдордЧреНрд░реАрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЯреНрдпрд╛рдЧрд┐рдЩ рд░рдгрдиреАрддрд┐ рдердкрд┐рдПрдХреЛ рдЫ - рд╕рд╛рдордЧреНрд░реА рдЖрдзрд╛рд░рд┐рдд рдЯреНрдпрд╛рдЧрд┐рдЩ, рдЬреБрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рдгрдиреАрддрд┐ рдмрдиреЗрдХреЛ рдЫред рдореБрдЦреНрдп рдЖрджреЗрд╢ рд▓рдЧ рдкрдирд┐ рдкреБрди: рдХрд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫ: werf build, werf publish, werf deploy, werf dismiss, werf cleanup.

рдЕрд░реНрдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЪрд░рдг рд╡рд┐рддрд░рд┐рдд рд╕рдореНрдореЗрд▓рдирд╣рд░реВ рдердкреНрди рд╣реЛред рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХрд╛ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ v1.0 рджреЗрдЦрд┐ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рднрдиреНрджрд╛ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рднрдПрдХрд╛ рдЫрдиреН рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВрд▓реЗ werf рдорд╛ рдердк рдореВрд▓реНрдп рдердкреНрдЫрдиреН: рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдард╛рдбреЛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╡рд┐рднрд┐рдиреНрди CI/CD рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдмрд┐рд▓реНрдбрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди, рд╕рд╛рдереИ GitHub рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ред ред рддрд╕рд░реНрде, рд╕рдорд╛рдирд╛рдиреНрддрд░ рд╕рднрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рдордпрд╕реАрдорд╛ рд╕рд╛рд░рд┐рдПрдХреЛ рдЫред рддрд░, рд╣рд╛рдореА рджреБрд╡реИ рд╕рдореНрднрд╛рд╡рдирд╛рд▓рд╛рдИ рдЬрддрд┐рд╕рдХреНрджреЛ рдЪрд╛рдБрдбреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред

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

PS

рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:

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

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