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

рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдЪреНрдпрд╛ рд╕реВрдХреНрд╖реНрдо рдЧреЛрд╖реНрдЯреАрдВрдордзреНрдпреЗ рдЬрд╛: рд╕рд░реНрд╡ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╕рд╛рдареА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореЗрдиреВ рддрдпрд╛рд░ рдХрд░рдгреЗ, рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЕрд╕рд▓реЗрд▓реА рдкреГрд╖реНрдареЗ рдЗ. - рдЖрдореНрд╣реА рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рддреНрдпрд╛рдРрд╡рдЬреА, рдбрд╛рдпрдиреЕрдорд┐рдХ рдЕрд╕реЗрдВрдмреНрд▓реАрдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдЖрдгрд┐ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╡рд░ рдЖрдгрд┐ рд╕реЛрдмрддрдЪреНрдпрд╛ CI/CD рдкреНрд░рдХреНрд░рд┐рдпреЗрд╡рд░ рдереЛрдбреЗ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдпрд╛.
рдкрд░рд┐рдЪрдп: рд╕рд╛рдЗрдЯ рдХрд╢реА рдХрд╛рд░реНрдп рдХрд░рддреЗ
рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, werf рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рддреНрдпрд╛рдЪреНрдпрд╛ рдХреЛрдбрд╕рд╣ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╣реЗ рдХрд╛рд╣реА рд╡рд┐рдХрд╛рд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд▓рд╛рджрддреЗ рдЬреЗ рд╕рд╛рдорд╛рдиреНрдпрдд: рдпрд╛ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╡реНрдпрд╛рдкреНрддреАрдЪреНрдпрд╛ рдкрд▓реАрдХрдбреЗ рдЕрд╕рддрд╛рдд, рдкрд░рдВрддреБ рдХрдореАрддрдХрдореА рдЕрд╕реЗ рдореНрд╣рдЯрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХреА:
- рдирд╡реАрди werf рдлрдВрдХреНрд╢рдиреНрд╕ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╕реЛрдбрд▓реЗ рдЬрд╛рдК рдирдпреЗрдд рдЖрдгрд┐ рддреНрдпрд╛рдЙрд▓рдЯ, рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рддреАрд▓ рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ werf рдЪреНрдпрд╛ рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдЪреЗ рдкреНрд░рдХрд╛рд╢рди рд╕реВрдЪрд┐рдд рдХрд░рддрд╛рдд;
- рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рдмрд▒реНрдпрд╛рдкреИрдХреА рдЧрд╣рди рд╡рд┐рдХрд╛рд╕ рдЖрд╣реЗ: рдирд╡реАрди рдЖрд╡реГрддреНрддреНрдпрд╛ рджрд┐рд╡рд╕рд╛рддреВрди рдЕрдиреЗрдХ рд╡реЗрд│рд╛ рд╕реЛрдбрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд;
- рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдЪреНрдпрд╛ рдирд╡реАрди рдЖрд╡реГрддреНрддреАрд╕рд╣ рд╕рд╛рдЗрдЯ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреЗрд╣реА рдореЕрдиреНрдпреБрдЕрд▓ рдСрдкрд░реЗрд╢рди рдХрд┐рдорд╛рди рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ рдЖрд╣реЗрдд;
- рдкреНрд░рдХрд▓реНрдк рдПрдХ рдЕрд░реНрдердкреВрд░реНрдг рджреГрд╖реНрдЯреАрдХреЛрди рд╕реНрд╡реАрдХрд╛рд░рддреЛ , 5 рд╕реНрдерд┐рд░рддрд╛ рдЪреЕрдиреЗрд▓рд╕рд╣. рд░рд┐рд▓реАрдЭ рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗ рд╕реНрдерд┐рд░рддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рдЪреЕрдиреЗрд▓рджреНрд╡рд╛рд░реЗ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдорд╛рд░реНрдЧ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЛ: рдЕрд▓реНрдлрд╛ рддреЗ рд░реЙрдХ-рд╕реЛрд▓рд┐рдб;
- рд╕рд╛рдЗрдЯрдЪреА рд░рд╢рд┐рдпрди-рднрд╛рд╖реЗрдЪреА рдЖрд╡реГрддреНрддреА рдЖрд╣реЗ, рдЬреА рдореБрдЦреНрдп (рдореНрд╣рдгрдЬреЗ рдЗрдВрдЧреНрд░рдЬреА-рднрд╛рд╖рд╛) рдЖрд╡реГрддреНрддреАрдЪреНрдпрд╛ рд╕рдорд╛рдВрддрд░ "рдЬрдЧрддреЗ рдЖрдгрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ" (рдореНрд╣рдгрдЬреЗ, рддреНрдпрд╛рддреАрд▓ рд╕рд╛рдордЧреНрд░реА рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ).
рд╣реЗ рд╕рд░реНрд╡ "рдЖрддреАрд▓ рд╕реНрд╡рдпрдВрдкрд╛рдХрдШрд░" рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдкрд╛рд╕реВрди рд▓рдкрд╡рдгреНрдпрд╛рд╕рд╛рдареА, рддреНрдпрд╛рд▓рд╛ "рдлрдХреНрдд рдХрд╛рд░реНрдп рдХрд░рддреЗ" рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдСрдлрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдХреЗрд▓реЗ рд╡реЗрдЧрд│реЗ рд╡реЗрд░реНрдл рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЖрдгрд┐ рдЕрдкрдбреЗрдЯ рдЯреВрд▓ - рд╣реЗ рдЖрд╣реЗ . рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рд░рд┐рд▓реАрдЭ рдирдВрдмрд░ рдЖрдгрд┐ рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЕрд╕рд▓реЗрд▓реЗ рд╕реНрдерд┐рд░рддрд╛ рдЪреЕрдиреЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдорд▓реНрдЯреАрд╡рд░реНрдл рдЪреЕрдиреЗрд▓рд╡рд░ рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЖрд╣реЗ рдХрд╛ рддреЗ рддрдкрд╛рд╕реЗрд▓ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рддреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрд▓.
рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░реАрд▓ рдЖрд╡реГрддреНрддреА рдирд┐рд╡рдб рдореЗрдиреВрдордзреНрдпреЗ, рдкреНрд░рддреНрдпреЗрдХ рдЪреЕрдиреЗрд▓рдордзреНрдпреЗ werf рдЪреНрдпрд╛ рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд. рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдкрддреНрддреНрдпрд╛рдиреБрд╕рд╛рд░ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЭрд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рд╕реНрдерд┐рд░ рдЪреЕрдиреЗрд▓рдЪреА рдЖрд╡реГрддреНрддреА рдЙрдШрдбрддреЗ - рддреА рд╢реЛрдз рдЗрдВрдЬрд┐рдирджреНрд╡рд╛рд░реЗ рджреЗрдЦреАрд▓ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЪреЕрдиреЗрд▓рд╕рд╛рдареА рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╕реНрд╡рддрдВрддреНрд░ рдкрддреНрддреНрдпрд╛рдВрд╡рд░ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬ 1.0 рд╕рд╛рдареА).
рдПрдХреВрдг, рд╕рд╛рдЗрдЯрд╡рд░ рдЦрд╛рд▓реАрд▓ рдЖрд╡реГрддреНрддреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд:
- рд░реВрдЯ (рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЙрдШрдбрддреЗ),
- рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдХреНрд░рд┐рдп рдЕрджреНрдпрддрди рдЪреЕрдиреЗрд▓рд╕рд╛рдареА (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, ).
рд╕рд╛рдЗрдЯрдЪреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡реГрддреНрддреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рддреЗ рд╡рд╛рдкрд░реВрди рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЪрд╛рд▓рд╡реВрди /docs werf рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрджреЗрд╢ (jekyll build), рдЖрд╡рд╢реНрдпрдХ рдЖрд╡реГрддреНрддреАрдЪреНрдпрд╛ Git рдЯреЕрдЧрд╡рд░ рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░.
рд╣реЗ рдлрдХреНрдд рдЬреЛрдбрдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ:
- рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╕реНрд╡рддрдГ (werf) рдЕрд╕реЗрдВрдмреНрд▓реАрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ;
- CI/CD рдкреНрд░рдХреНрд░рд┐рдпрд╛ GitLab CI рдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд;
- рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ рдЕрд░реНрдерд╛рддрдЪ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдЪрд╛рд▓рддреЗ.
рдХрд╛рд░реНрдпреЗ
рдЖрддрд╛ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рд╕рд░реНрд╡ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгрд╛рд░реА рдХрд╛рд░реНрдпреЗ рддрдпрд╛рд░ рдХрд░реВрдпрд╛:
- рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрдкрдбреЗрдЯ рдЪреЕрдиреЗрд▓рд╡рд░ werf рдЖрд╡реГрддреНрддреА рдмрджрд▓рд▓реНрдпрд╛рдирдВрддрд░ рд╕рд╛рдЗрдЯрд╡рд░реАрд▓ рджрд╕реНрддрдРрд╡рдЬ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЬрд╛рд╡реЗ.
- рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдзреАрдХрдзреА рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЖрд╡реГрддреНрддреНрдпрд╛ рдкрд╣рд╛.
рд╕рдВрдмрдВрдзрд┐рдд рдЧрд┐рдЯ рдЯреЕрдЧреНрдЬрд╡рд░реВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЪреЕрдиреЗрд▓рд╡рд░реАрд▓ рдЖрд╡реГрддреНрддреА рдмрджрд▓рд▓реНрдпрд╛рдирдВрддрд░ рд╕рд╛рдЗрдЯ рдкреБрдиреНрд╣рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдЖрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдорд┐рд│рддреАрд▓:
- рдЪреЕрдиреЗрд▓рд╡рд░реАрд▓ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреА рд╕реВрдЪреА рдмрджрд▓рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрд╡реГрддреНрддреА рдмрджрд▓рд▓реЗрд▓реНрдпрд╛ рдЪреЕрдиреЗрд▓рд╕рд╛рдареА рдХрд╛рдЧрджрдкрддреНрд░реЗ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╢реЗрд╡рдЯреА, рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЦреВрдк рдЫрд╛рди рдирд╛рд╣реА.
- рд░рд┐рд▓реАрдЭрд╕рд╛рдареА рдЪреЕрдиреЗрд▓рдЪрд╛ рд╕рдВрдЪ рдмрджрд▓реВ рд╢рдХрддреЛ. рдХрд╛рд╣реА рд╡реЗрд│реЗрд╕, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЪреЕрдиреЗрд▓рд╡рд░ рд▓рд╡рдХрд░-рдкреНрд░рд╡реЗрд╢ 1.1 рд░рд┐рд▓реАрдЭрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддреА рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ рддреА рджрд┐рд╕реВрди рдпреЗрдИрд▓ - рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рддреБрдореНрд╣реА рдЕрд╕реЗрдВрдмреНрд▓реА рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдмрджрд▓реВ рдирдпреЗ?
рддреЛ рдмрд╛рд╣реЗрд░ рд╡рд│рддреЗ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛ рдмрджрд▓рдгреНрдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ.
рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА
рдПрдХ рджреГрд╖реНрдЯреАрдХреЛрди рдирд┐рд╡рдбрдгреЗ
рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛, рддреБрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡рд╢реНрдпрдХ рдЖрд╡реГрддреНрддреА Kubernetes рдордзреНрдпреЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреЙрдб рдореНрд╣рдгреВрди рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛. рд╣рд╛ рдкрд░реНрдпрд╛рдп рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реВрдЪрд┐рдд рдХрд░рддреЛ, рдЬреЗ рд╕реНрдерд┐рд░ рд╡реЗрд░реНрдл рд░рд┐рд▓реАрдЭрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдд рд╡рд╛рдв рд╣реЛрдИрд▓. рдЖрдгрд┐ рд╣реЗ, рдпрд╛рдордзреВрди, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рджреЗрдЦрднрд╛рд▓ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ: рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реГрддреНрддреАрдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ HTTP рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕рддреЗ рдЖрдгрд┐ рд▓рд╣рд╛рди рд▓реЛрдбрд╕рд╣. рдЕрд░реНрдерд╛рдд, рдпрд╛рд╕рд╛рдареА рдЬрд╛рд╕реНрдд рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдЖрдореНрд╣реА рддреЛрдЪ рдорд╛рд░реНрдЧ рд╕реНрд╡реАрдХрд╛рд░рд▓рд╛ рдПрдХрд╛ рдкреНрд░рддрд┐рдореЗрдд рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдЖрд╡реГрддреНрддреНрдпрд╛ рдПрдХрддреНрд░ рдХрд░рдгреЗ. рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рд╕рд░реНрд╡ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреЗ рд╕рдВрдХрд▓рд┐рдд рд╕реНрдЯреЕрдЯрд┐рдХреНрд╕ NGINX рд╕рд╣ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рддреИрдирд╛рддреАрдХрдбреЗ рд░рд╣рджрд╛рд░реА NGINX рдЗрдВрдЧреНрд░реЗрд╕рджреНрд╡рд╛рд░реЗ рдпреЗрддреЗ. рдПрдХ рд╕рд╛рдзреА рд░рдЪрдирд╛ - рдПрдХ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди - рддреБрдореНрд╣рд╛рд▓рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ (рд▓реЛрдбрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди) рд╕рд╣рдЬрдкрдгреЗ рд╕реНрдХреЗрд▓ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
рдЕрдзрд┐рдХ рдЕрдЪреВрдХ рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рджреЛрди рдкреНрд░рддрд┐рдорд╛ рдЧреЛрд│рд╛ рдХрд░рдд рдЖрд╣реЛрдд: рдПрдХ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрдХрд┐рдЯрд╕рд╛рдареА, рджреБрд╕рд░реА рдбреЗрд╡реНрд╣ рд╕рд░реНрдХрд┐рдЯрд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╣реЗ. рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдорд╛ рдореБрдЦреНрдпрд╕рд╣ рдХреЗрд╡рд│ рдбреЗрд╡реНрд╣ рд╕рд░реНрдХрд┐рдЯрд╡рд░ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ (рд▓рд╛рдБрдЪ рдХреЗрд▓реЗрд▓реА) рдЖрдгрд┐ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрдорд┐рдЯрдордзреАрд▓ рд╕рд╛рдЗрдЯрдЪреА рдЖрд╡реГрддреНрддреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ рдЖрдгрд┐ рддреНрдпрд╛ рджрд░рдореНрдпрд╛рди рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЗрдирдЧреНрд░реЗрд╕ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
werf vs git рдХреНрд▓реЛрди рдЖрдгрд┐ рдХрд▓рд╛рдХреГрддреА
рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡реГрддреНрддреАрд╕рд╛рдареА рд╕рд╛рдЗрдЯ рд╕реНрдЯреЕрдЯрд┐рдХреНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдпреЛрдЧреНрдп рд░рд┐рдкреЙрдЭрд┐рдЯрд░реА рдЯреЕрдЧрд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░реВрди рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рддреБрдореНрд╣реА рддрдпрд╛рд░ рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛, рд╕реВрдЪреАрдордзреВрди рдпреЛрдЧреНрдп рдЯреЕрдЧ рдирд┐рд╡рдбреВрди рддреБрдореНрд╣реА рд╣реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреНрд▓реЛрди рдХрд░реВрди рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддрд╛. рддрдерд╛рдкрд┐, рд╣реЗ рдПрдХ рдРрд╡рдЬреА рд╕рдВрд╕рд╛рдзрди-рдХреЗрдВрджреНрд░рд┐рдд рдСрдкрд░реЗрд╢рди рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп, рдХреНрд╖реБрд▓реНрд▓рдХ рд╕реВрдЪрдирд╛ рд▓рд┐рд╣рд┐рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ... рдЖрдгрдЦреА рдПрдХ рдЧрдВрднреАрд░ рддреЛрдЯрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдиреЗ рдЕрд╕реЗрдВрдмреНрд▓реА рджрд░рдореНрдпрд╛рди рдХрд╛рд╣реАрддрд░реА рдХреЕрд╢ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рдорд╛рд░реНрдЧ рдирд╛рд╣реА.
рдпреЗрдереЗ werf рдЙрдкрдпреБрдХреНрддрддрд╛ рд╕реНрд╡рддрдГрдЪ рдЖрдордЪреНрдпрд╛ рдорджрддреАрд▓рд╛ рдпреЗрддреЗ, рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рддреЗ рд╕реНрдорд╛рд░реНрдЯ рдХреЕрд╢рд┐рдВрдЧ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ . рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди рдХреЛрдб рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА werf рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рдмрд┐рд▓реНрдбрд▓рд╛ рд▓рдХреНрд╖рдгреАрдп рдЧрддреА рдорд┐рд│реЗрд▓, рдХрд╛рд░рдг werf рдореВрд▓рдд: рдПрдХрджрд╛ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдХреНрд▓реЛрди рдХрд░рддреЗ рдЖрдгрд┐ рдирдВрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рдлрдХреНрдд fetch рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди рдбреЗрдЯрд╛ рдЬреЛрдбрддрд╛рдирд╛, рдЖрдореНрд╣реА рдлрдХреНрдд рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд╡рдбреВ рд╢рдХрддреЛ (рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЖрд╣реЗ docs), рдЬреЗ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдЪреЗ рдкреНрд░рдорд╛рдг рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдХрд░реЗрд▓.
рдЬреЗрдХрд┐рд▓ рд╣реЗ рд╕реНрдЯреЕрдЯрд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдПрдХ рд╕рд╛рдзрди рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдЖрдгрд┐ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдореЗрдордзреНрдпреЗ рддреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ рддрд░реНрдХрд╕рдВрдЧрдд рдЕрд╕реЗрд▓. , рдЖрдгрд┐ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдореЗрдордзреНрдпреЗ рдлрдХреНрдд рд╕рдВрдХрд▓рди рдкрд░рд┐рдгрд╛рдо рдЖрдпрд╛рдд рдХрд░рд╛.
рдЖрдореНрд╣реА werf.yaml рд▓рд┐рд╣рд┐рддреЛ
рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдард░рд╡рд▓реЗ рдХреА рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реГрддреНрддреА рд╡реЗрдЧрд│реНрдпрд╛ рд╡реЗрд░реНрдл рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реВ. рддрдерд╛рдкрд┐ рдЖрдореНрд╣реА рдЕрд╕реЗрдВрдмреНрд▓реА рджрд░рдореНрдпрд╛рди рдпрд╛рдкреИрдХреА рдХрд┐рддреА рдХрд▓рд╛рдХреГрддреА рдЕрд╕рддреАрд▓ рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд▓рд┐рд╣реВ рд╢рдХрдд рдирд╛рд╣реА (рдХрдареЛрд░рдкрдгреЗ рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рдЖрдореНрд╣реА рдЕрдЬреВрдирд╣реА рдХрд░реВ рд╢рдХрддреЛ, рдкрд░рдВрддреБ рддреЗ рдкреВрд░реНрдгрдкрдгреЗ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА).
werf рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рддреБрдордЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ (werf.yaml), рдЖрдгрд┐ рд╣реЗ рд╢рдХреНрдп рдХрд░рддреЗ рдлреНрд▓рд╛рдп рд╡рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рд╛ рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди (рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХрд╛рдп рд╣рд╡реЗ рдЖрд╣реЗ!). рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛ рдореНрд╣рдгрдЬреЗ рдЖрд╡реГрддреНрддреНрдпрд╛ рдЖрдгрд┐ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдмрджреНрджрд▓рдЪреА рдорд╛рд╣рд┐рддреА, рдЬреНрдпрд╛рдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рдЖрдореНрд╣реА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпреЗрдиреЗ рдХрд▓рд╛рдХреГрддреА рдЧреЛрд│рд╛ рдХрд░рддреЛ рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдореА рдЖрдореНрд╣рд╛рд▓рд╛ рджреЛрди рдкреНрд░рддрд┐рдорд╛ рдорд┐рд│рддрд╛рдд: werf-doc ╨╕ werf-dev рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд░реНрдХрд┐рдЯреНрд╕рд╡рд░ рдЪрд╛рд▓рдгреНрдпрд╛рд╕рд╛рдареА.
рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рджреНрд╡рд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпреЗрдереЗ рддреНрдпрд╛рдВрдЪреА рд░рдЪрдирд╛ рдЖрд╣реЗ:
-
RELEASES- рд░рд┐рд▓реАрдЭрдЪреА рд╕реВрдЪреА рдЖрдгрд┐ werf рдЪреНрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрддрдорд╛рди рдЖрд╡реГрддреНрддреАрд╕рд╣ рдПрдХ рдУрд│, рдлреЙрд░рдореЕрдЯрдордзреАрд▓ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрдкреЗрд╕-рд╡рд┐рднрдХреНрдд рд╕реВрдЪреАрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд<╨Э╨Ю╨Ь╨Х╨а_╨а╨Х╨Ы╨Ш╨Ч╨Р>%<╨Э╨Ю╨Ь╨Х╨а_╨Т╨Х╨а╨б╨Ш╨Ш>. рдЙрджрд╛рд╣рд░рдгрдГ1.0%v1.0.4-beta.20 -
CHANNELSтАФ рдЪреЕрдиреЗрд▓рдЪреА рд╕реВрдЪреА рдЖрдгрд┐ werf рдЪреА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрддрдорд╛рди рдЖрд╡реГрддреНрддреА рдЕрд╕рд▓реЗрд▓реА рдПрдХ рдУрд│, рдлреЙрд░рдореЕрдЯрдордзреАрд▓ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрдкреЗрд╕-рд╡рд┐рднрдХреНрдд рд╕реВрдЪреАрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд<╨Ъ╨Р╨Э╨Р╨Ы>%<╨Э╨Ю╨Ь╨Х╨а_╨Т╨Х╨а╨б╨Ш╨Ш>. рдЙрджрд╛рд╣рд░рдгрдГ1.0-beta%v1.0.4-beta.20 1.0-alpha%v1.0.5-alpha.22 -
ROOT_VERSIONтАФ рд╕рд╛рдЗрдЯрд╡рд░ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА werf рд░рд┐рд▓реАрдЭ рдЖрд╡реГрддреНрддреА (рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рдХрд╛рд╢рди рдХреНрд░рдорд╛рдВрдХрд╛рджреНрд╡рд╛рд░реЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреЗ рдиреЗрд╣рдореАрдЪ рдЖрд╡рд╢реНрдпрдХ рдирд╕рддреЗ). рдЙрджрд╛рд╣рд░рдг:v1.0.4-beta.20 -
REVIEW_SHAтАФ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрдорд┐рдЯрдЪрд╛ рд╣реЕрд╢ рдЬреНрдпрд╛рдордзреВрди рддреБрдореНрд╣рд╛рд▓рд╛ рдЪрд╛рдЪрдгреА рд▓реВрдкрд╕рд╛рдареА рдЖрд╡реГрддреНрддреА рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ.
рд╣реЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ GitLab CI рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рднрд░рд▓реЗ рдЬрд╛рддреАрд▓ рдЖрдгрд┐ рдЦрд╛рд▓реА рдиреЗрдордХреЗ рдХрд╕реЗ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ.
рд╕рд░реНрд╡ рдкреНрд░рдердо, рд╕реЛрдпреАрд╕рд╛рдареА, рдЖрдореНрд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЛ werf.yaml рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╡рд░ рдЬрд╛, рддреНрдпрд╛рдВрдирд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдордзреВрди рдореВрд▓реНрдпреЗ рдирд┐рдпреБрдХреНрдд рдХрд░рд╛:
{{ $_ := set . "WerfVersions" (cat (env "CHANNELS") (env "RELEASES") | splitList " ") }}
{{ $Root := . }}
{{ $_ := set . "WerfRootVersion" (env "ROOT_VERSION") }}
{{ $_ := set . "WerfReviewCommit" (env "REVIEW_SHA") }} рд╕рд╛рдЗрдЯрдЪреА рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрдЪреЗ рд╡рд░реНрдгрди рд╕рд╛рдорд╛рдиреНрдпрдд: рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд░рдгрд╛рдВрд╕рд╛рдареА рд╕рдорд╛рди рдЕрд╕рддреЗ (рдореВрд│ рдЖрд╡реГрддреНрддреА рддрдпрд╛рд░ рдХрд░рдгреЗ, рддрд╕реЗрдЪ рдбреЗрд╡реНрд╣ рд╕рд░реНрдХрд┐рдЯрд╕рд╛рдареА рдЖрд╡реГрддреНрддреАрд╕рд╣). рдореНрд╣рдгреВрди, рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░реВрди рдЖрдореНрд╣реА рддреЗ рд╡реЗрдЧрд│реНрдпрд╛ рдмреНрд▓реЙрдХрдордзреНрдпреЗ рд╣рд▓рд╡реВ define - рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА include. рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдпреБрдХреНрддрд┐рд╡рд╛рдж рдЯреЗрдореНрдкрд▓реЗрдЯрдордзреНрдпреЗ рдкрд╛рд╕ рдХрд░реВ:
-
VersionтАФ рд╡реНрдпреБрддреНрдкрдиреНрди рдЖрд╡реГрддреНрддреА (рдЯреЕрдЧ рдирд╛рд╡); -
ChannelтАФ рдЕрджреНрдпрдпрд╛рд╡рдд рдЪреЕрдиреЗрд▓рдЪреЗ рдирд╛рд╡ рдЬреНрдпрд╛рд╕рд╛рдареА рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рдЖрд╣реЗ; -
CommitтАФ рдХрдорд┐рдЯ рд╣реЕрд╢, рдЬрд░ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрдорд┐рдЯрд╕рд╛рдареА рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рдЕрд╕реЗрд▓; - рд╕рдВрджрд░реНрдн
рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд░реНрдгрди
{{- define "doc_artifact" -}}
{{- $Root := index . "Root" -}}
artifact: doc-{{ .Channel }}
from: jekyll/builder:3
mount:
- from: build_dir
to: /usr/local/bundle
ansible:
install:
- shell: |
export PATH=/usr/jekyll/bin/:$PATH
- name: "Install Dependencies"
shell: bundle install
args:
executable: /bin/bash
chdir: /app/docs
beforeSetup:
{{- if .Commit }}
- shell: echo "Review SHA - {{ .Commit }}."
{{- end }}
{{- if eq .Channel "root" }}
- name: "releases.yml HASH: {{ $Root.Files.Get "releases.yml" | sha256sum }}"
copy:
content: |
{{ $Root.Files.Get "releases.yml" | indent 8 }}
dest: /app/docs/_data/releases.yml
{{- else }}
- file:
path: /app/docs/_data/releases.yml
state: touch
{{- end }}
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/
- /app/ru_site/
- file:
dest: /app/docs/pages_ru/cli
state: link
src: /app/docs/pages/cli
- shell: |
echo -e "werfVersion: {{ .Version }}nwerfChannel: {{ .Channel }}" > /tmp/_config_additional.yml
export PATH=/usr/jekyll/bin/:$PATH
{{- if and (ne .Version "review") (ne .Channel "root") }}
{{- $_ := set . "BaseURL" ( printf "v%s" .Channel ) }}
{{- else if ne .Channel "root" }}
{{- $_ := set . "BaseURL" .Channel }}
{{- end }}
jekyll build -s /app/docs -d /app/_main_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/tmp/_config_additional.yml
jekyll build -s /app/docs -d /app/_ru_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/app/docs/_config_ru.yml,/tmp/_config_additional.yml
args:
executable: /bin/bash
chdir: /app/docs
git:
- url: https://github.com/flant/werf.git
to: /app/
owner: jekyll
group: jekyll
{{- if .Commit }}
commit: {{ .Commit }}
{{- else }}
tag: {{ .Version }}
{{- end }}
stageDependencies:
install: ['docs/Gemfile','docs/Gemfile.lock']
beforeSetup: '**/*'
includePaths: 'docs'
excludePaths: '**/*.sh'
{{- end }} рдХрд▓рд╛рдХреГрддреАрдЪреЗ рдирд╛рд╡ рдЕрджреНрд╡рд┐рддреАрдп рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдореНрд╣реА рд╣реЗ рд╕рд╛рдзреНрдп рдХрд░реВ рд╢рдХрддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЪреЕрдиреЗрд▓рдЪреЗ рдирд╛рд╡ рдЬреЛрдбреВрди (рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп .Channel) рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪрд╛ рдкреНрд░рддреНрдпрдп рдореНрд╣рдгреВрди: artifact: doc-{{ .Channel }}. рдкрд░рдВрддреБ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рдХрд▓рд╛рдХреГрддреАрдВрдордзреВрди рдЖрдпрд╛рдд рдХрд░рддрд╛рдирд╛, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕рдорд╛рди рдирд╛рд╡рд╛рдВрдЪрд╛ рд╕рдВрджрд░реНрдн рдШреНрдпрд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓.
рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛рдирд╛, рдЦрд╛рд▓реАрд▓ рд╡реЗрд░реНрдл рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ: . рд╕реЗрд╡рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рджрд░реНрд╢рд╡рд┐рдгрд╛рд░реЗ рдорд╛рдЙрдВрдЯрд┐рдВрдЧ build_dir рддреБрдореНрд╣рд╛рд▓рд╛ рдЬреЗрдХрд┐рд▓ рдХреЕрд╢реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд░рди рджрд░рдореНрдпрд╛рди рдЬрддрди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдЬреЗ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рдХреНрд╖рдгреАрдп рдЧрддреА рд╡рд╛рдврддреЗ.
рдлрд╛рдИрд▓рдЪрд╛ рд╡рд╛рдкрд░рд╣реА рддреБрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрд▓рд╛ рдЕрд╕реЗрд▓ releases.yml рд░рд┐рд▓реАрдЭ рдбреЗрдЯрд╛рдЪреА рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓реА YAML рдлрд╛рдЗрд▓ рдЖрд╣реЗ (рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛рдирд╛ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗрд▓реА рдХрд▓рд╛рдХреГрддреА). рд╕рд╛рдЗрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛рдирд╛ рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рддреЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдордиреЛрд░рдВрдЬрдХ рдЖрд╣реЗ рдХрд╛рд░рдг рддреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ рдлрдХреНрдд рдПрдХрд╛ рдХрд▓рд╛рдХреГрддреАрдЪреЗ рдкреБрдиреНрд╣рд╛ рдПрдХрддреНрд░реАрдХрд░рдг тАФ рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рдореВрд│ рдЖрд╡реГрддреНрддреАрдЪреА рдХрд▓рд╛рдХреГрддреА (рдЗрддрд░ рдХрд▓рд╛рдХреГрддреАрдВрдордзреНрдпреЗ рддреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА).
рд╣реЗ рд╕рд╢рд░реНрдд рд╡рд┐рдзрд╛рди рд╡рд╛рдкрд░реВрди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ if рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЖрдгрд┐ рдбрд┐рдЭрд╛рдИрдиреНрд╕ рдЬрд╛ {{ $Root.Files.Get "releases.yml" | sha256sum }} рдЯрдкреНрдкреНрдпрд╛рдд . рд╣реЗ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ: рд░реВрдЯ рдЖрд╡реГрддреНрддреАрд╕рд╛рдареА рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ (рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ .Channel рдЪреНрдпрд╛ рд╕рдорд╛рди root) рдлрд╛рдЗрд▓ рд╣реЕрд╢ releases.yml рд╕рдВрдкреВрд░реНрдг рд╕реНрдЯреЗрдЬрдЪреНрдпрд╛ рд╕реНрд╡рд╛рдХреНрд╖рд░реАрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рддреЗ, рдХрд╛рд░рдг рддреЗ рдЙрддреНрддрд░рджрд╛рдпреА рдХрд╛рд░реНрдпрд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ (рдкреЕрд░рд╛рдореАрдЯрд░ name). рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдмрджрд▓рддрд╛рдирд╛ рд╕рд╛рдордЧреНрд░реА рдлрд╛рдЗрд▓ releases.yml рд╕рдВрдмрдВрдзрд┐рдд рдХрд▓рд╛рдХреГрддреА рдкреБрдиреНрд╣рд╛ рдПрдХрддреНрд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓.
рдХреГрдкрдпрд╛ рдмрд╛рд╣реНрдп рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдХрдбреЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖ рджреНрдпрд╛. рдкрд╛рд╕реВрди рдПрдХ рдХрд▓рд╛рдХреГрддреА рдЪреНрдпрд╛ рдкреНрд░рддрд┐рдореЗрдд , рдлрдХреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛрдбрд▓реА рдЖрд╣реЗ /docs, рдЖрдгрд┐ рдкрд╛рд╕ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди, рдЖрд╡рд╢реНрдпрдХ рдЯреЕрдЧ рдХрд┐рдВрд╡рд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрдорд┐рдЯрдЪрд╛ рдбреЗрдЯрд╛ рддреНрд╡рд░рд┐рдд рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ.
рдЪреЕрдиреЗрд▓ рдЖрдгрд┐ рд░рд┐рд▓реАрдЭрдЪреНрдпрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрдЪреЗ рд╡рд░реНрдгрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд╡рд░ рдПрдХ рд▓реВрдк рдЖрдпреЛрдЬрд┐рдд рдХрд░рддреЛ .WerfVersions ╨▓ werf.yaml:
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ dict "Version" $VersionsDict._1 "Channel" $VersionsDict._0 "Root" $Root | include "doc_artifact" }}
---
{{ end -}} рдХрд╛рд░рдг рд▓реВрдк рдЕрдиреЗрдХ рдХрд▓рд╛рдХреГрддреА рддрдпрд╛рд░ рдХрд░реЗрд▓ (рдЖрдореНрд╣реА рдЕрд╢реА рдЖрд╢рд╛ рдХрд░рддреЛ), рддреНрдпрд╛рдВрдЪреНрдпрд╛рдордзреАрд▓ рд╡рд┐рднрд╛рдЬрдХ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рдЕрдиреБрдХреНрд░рдо --- (рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рд╕рд┐рдВрдЯреЕрдХреНрд╕рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА, рдкрд╣рд╛ ). рдЖрдзреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд▓реВрдкрдордзреНрдпреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЙрд▓ рдХрд░рддрд╛рдирд╛, рдЖрдореНрд╣реА рдЖрд╡реГрддреНрддреА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕, URL рдЖрдгрд┐ рд░реВрдЯ рд╕рдВрджрд░реНрдн рдкрд╛рд╕ рдХрд░рддреЛ.
рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рдкрд░рдВрддреБ рд▓реВрдкрд╢рд┐рд╡рд╛рдп, рдЖрдореНрд╣реА "рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд░рдгрд╛рдВрд╕рд╛рдареА" рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореНрд╣рдгрддреЛ: рд░реВрдЯ рдЖрд╡реГрддреНрддреАрд╕рд╛рдареА, рддрд╕реЗрдЪ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рд╡рдЪрдирдмрджреНрдзрддреЗрдЪреА рдЖрд╡реГрддреНрддреА:
{{ dict "Version" .WerfRootVersion "Channel" "root" "Root" $Root | include "doc_artifact" }}
---
{{- if .WerfReviewCommit }}
{{ dict "Version" "review" "Channel" "review" "Commit" .WerfReviewCommit "Root" $Root | include "doc_artifact" }}
{{- end }} рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрдорд┐рдЯрд╕рд╛рдареА рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕рдЪ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ .WerfReviewCommit.
рдХрд▓рд╛рдХреГрддреА рддрдпрд╛рд░ рдЖрд╣реЗрдд - рдЖрдпрд╛рдд рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ!
рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдорд╛, Kubernetes рд╡рд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реА, рд╕рд░реНрд╡реНрд╣рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдЬреЛрдбрд▓реЗрд▓реА рдПрдХ рдирд┐рдпрдорд┐рдд NGINX рдЖрд╣реЗ nginx.conf рдЖрдгрд┐ рдХрд▓рд╛рдХреГрддреАрдВрдордзреВрди рд╕реНрдерд┐рд░. рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рдореВрд│ рдЖрд╡реГрддреНрддреАрдЪреНрдпрд╛ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣рд╛рд▓рд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд╡рд░реАрд▓ рд▓реВрдк рдкреБрдиреНрд╣рд╛ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ .WerfVersions рдЪреЕрдиреЗрд▓рдЪреНрдпрд╛ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯреНрд╕ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЖрд╡реГрддреНрддреНрдпрд╛ рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА + рдЖрдореНрд╣реА рдЖрдзреА рд╕реНрд╡реАрдХрд╛рд░рд▓реЗрд▓реНрдпрд╛ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рдиреЗрдорд┐рдВрдЧ рдирд┐рдпрдорд╛рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛. рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рджреЛрди рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдард┐рдХрд╛рдгреА рдЖрдпрд╛рдд рдХрд░рддреЛ.
рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдореЗрдЪреЗ рд╡рд░реНрдгрди werf-doc
image: werf-doc
from: nginx:stable-alpine
ansible:
setup:
- name: "Setup /etc/nginx/nginx.conf"
copy:
content: |
{{ .Files.Get ".werf/nginx.conf" | indent 8 }}
dest: /etc/nginx/nginx.conf
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/assets
- /app/ru_site/assets
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_main_site
to: /app/main_site/v{{ $Channel }}
before: setup
{{ end -}}
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_ru_site
to: /app/ru_site/v{{ $Channel }}
before: setup
{{ end -}}рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдорд╛, рдЬреА рдореБрдЦреНрдп рдЪрд┐рддреНрд░рд╛рд╕рд╣, рдбреЗрд╡реНрд╣ рд╕рд░реНрдХрд┐рдЯрд╡рд░ рд▓реЙрдиреНрдЪ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рддреНрдпрд╛рдордзреНрдпреЗ рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рдлрдХреНрдд рджреЛрди рдЖрд╡реГрддреНрддреНрдпрд╛ рдЖрд╣реЗрдд: рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрдорд┐рдЯрдордзреАрд▓ рдЖрд╡реГрддреНрддреА рдЖрдгрд┐ рд╕рд╛рдЗрдЯрдЪреА рдореВрд│ рдЖрд╡реГрддреНрддреА (рд╕рд╛рдорд╛рдиреНрдп рдорд╛рд▓рдорддреНрддрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐, рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдд рдЕрд╕рд▓реНрдпрд╛рд╕ , рдбреЗрдЯрд╛ рд░рд┐рд▓реАрдЬ рдХрд░рд╛). рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдорд╛ рдХреЗрд╡рд│ рдЖрдпрд╛рдд рд╡рд┐рднрд╛рдЧрд╛рдд (рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ рдирд╛рд╡рд╛рдд) рдореБрдЦреНрдп рдкреНрд░рддрд┐рдорд╛рдкреЗрдХреНрд╖рд╛ рднрд┐рдиреНрди рдЕрд╕реЗрд▓:
image: werf-dev
...
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{- if .WerfReviewCommit }}
- artifact: doc-review
add: /app/_main_site
to: /app/main_site/review
before: setup
- artifact: doc-review
add: /app/_ru_site
to: /app/ru_site/review
before: setup
{{- end }} рд╡рд░ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд░рд┐рд╡реНрд╣реНрдпреВ рдХрдорд┐рдЯрд╕рд╛рдареА рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рддреЗрд╡реНрд╣рд╛рдЪ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ рдЬреЗрд╡реНрд╣рд╛ рд╕реЗрдЯ рдПрдиреНрд╡реНрд╣рд╛рдпрд░реНрдирдореЗрдВрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдИрд▓ REVIEW_SHA. рдЬрд░ рд╡рд╛рддрд╛рд╡рд░рдгреАрдп рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдирд╕реЗрд▓ рддрд░ werf-dev рдкреНрд░рддрд┐рдорд╛ рдЕрдЬрд┐рдмрд╛рдд рддрдпрд╛рд░ рди рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓ REVIEW_SHA, рдкрдг рдХреНрд░рдорд╛рдиреЗ werf рдордзреАрд▓ рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛рдВрдиреА werf-dev рдкреНрд░рддрд┐рдореЗрд╕рд╛рдареА рдХрд╛рдо рдХреЗрд▓реЗ рдЖрд╣реЗ, рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рдВрд░рдЪрдирд╛ рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рддреА рдХреЗрд╡рд│ рдореВрд│ рдЖрд╡реГрддреНрддреАрдЪреНрдпрд╛ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрд╕рд╣ (рддреЗ рдЖрдзреАрдЪ рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ) рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЛрдбреВ.
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рддрдпрд╛рд░ рдЖрд╣реЗ! рдЪрд▓рд╛ CI/CD рдЖрдгрд┐ рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рдмрд╛рд░рдХрд╛рд╡реЗ рдХрдбреЗ рд╡рд│реВ.
GitLab CI рдордзреАрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЖрдгрд┐ рдбрд╛рдпрдиреЕрдорд┐рдХ рдмрд┐рд▓реНрдбрдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ
рдмрд┐рд▓реНрдб рдЪрд╛рд▓рд╡рддрд╛рдирд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдд рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╕реЗрдЯ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓ werf.yaml. рд╣реЗ REVIEW_SHA рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд╡рд░ рд▓рд╛рдЧреВ рд╣реЛрдд рдирд╛рд╣реА, рдЬреЗ рдЖрдореНрд╣реА GitHub рд╣реБрдХрд╡рд░реВрди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЙрд▓ рдХрд░рддрд╛рдирд╛ рд╕реЗрдЯ рдХрд░реВ.
рдЖрдореНрд╣реА рдмреЕрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛ рддрдпрд╛рд░ рдХрд░реВ generate_artifacts, рдЬреЗ рджреЛрди GitLab рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯреНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░реЗрд▓:
- ╤Д╨░╨╣╨╗
releases.ymlрдкреНрд░рдХрд╛рд╢рди рдбреЗрдЯрд╛рд╕рд╣, - ╤Д╨░╨╣╨╗
common_envs.sh, рдирд┐рд░реНрдпрд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯреАрдд.
рдлрд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА generate_artifacts рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдордзреНрдпреЗ рд╕рд╛рдкрдбреЗрд▓ . рдбреЗрдЯрд╛ рд╕реНрд╡рддрдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рд╣рд╛ рд▓реЗрдЦрд╛рдЪрд╛ рд╡рд┐рд╖рдп рдирд╕реВрди рдлрд╛рдЗрд▓ рдЖрд╣реЗ common_envs.sh рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ, рдХрд╛рд░рдг werf рдЪреЗ рдХрд╛рдо рддреНрдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ. рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд╛рдордЧреНрд░реАрдЪреЗ рдЙрджрд╛рд╣рд░рдгрдГ
export RELEASES='1.0%v1.0.6-4'
export CHANNELS='1.0-alpha%v1.0.7-1 1.0-beta%v1.0.7-1 1.0-ea%v1.0.6-4 1.0-stable%v1.0.6-4 1.0-rock-solid%v1.0.6-4'
export ROOT_VERSION='v1.0.6-4' рддреБрдореНрд╣реА рдЕрд╢рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдмреЕрд╢ рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░реВрди source.
рдЖрддрд╛ рдордЬреЗрд╢реАрд░ рднрд╛рдЧ рдпреЗрддреЛ. рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдирд┐рд░реНрдорд┐рддреА рдЖрдгрд┐ рдЙрдкрдпреЛрдЬрди рджреЛрдиреНрд╣реА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ werf.yaml рд╣реЛрддреЗ рд╕рд╛рд░рдЦреЗ рдХрд┐рдорд╛рди рдПрдХрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ. рдЬрд░ рд╣реА рдЕрдЯ рдкреВрд░реНрдг рдЭрд╛рд▓реА рдирд╛рд╣реА, рддрд░ рдЕрд╕реЗрдВрдмреНрд▓реА рдЖрдгрд┐ рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреИрдирд╛рддреА рджрд░рдореНрдпрд╛рди рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рд╛рдХреНрд╖рд░реНрдпрд╛ рднрд┐рдиреНрди рдЕрд╕рддреАрд▓. рдпрд╛рдореБрд│реЗ рдЙрдкрдпреЛрдЬрди рддреНрд░реБрдЯреА рдирд┐рд░реНрдорд╛рдг рд╣реЛрдИрд▓, рдХрд╛рд░рдг... рдЙрдкрдпреЛрдЬрдирд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдкреНрд░рддрд┐рдорд╛ рдЧрд╣рд╛рд│ рдЕрд╕реЗрд▓.
рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЬрд░ рд╕рд╛рдЗрдЯрдЪреНрдпрд╛ рдкреНрд░рддрд┐рдореЗрдЪреНрдпрд╛ рдЕрд╕реЗрдВрдмреНрд▓реА рджрд░рдореНрдпрд╛рди рд░рд┐рд▓реАрдЭ рдЖрдгрд┐ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рд╕рдорд╛рди рдЕрд╕реЗрд▓ рдЖрдгрд┐ рдЙрдкрдпреЛрдЬрдирд╛рдЪреНрдпрд╛ рд╡реЗрд│реА рдирд╡реАрди рдЖрд╡реГрддреНрддреА рд░рд┐рд▓реАрдЭ рдХреЗрд▓реА рдЧреЗрд▓реА рдЕрд╕реЗрд▓ рдЖрдгрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреА рдореВрд▓реНрдпреЗ рднрд┐рдиреНрди рдЕрд╕рддреАрд▓, рддрд░ рддреИрдирд╛рддреА рддреНрд░реБрдЯреАрд╕рд╣ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдИрд▓: рддрдерд╛рдкрд┐, рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдЪреА рдХрд▓рд╛рдХреГрддреА рдЕрджреНрдпрд╛рдк рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА.
рдЬрд░ рдкрд┐рдвреА werf.yaml рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд░реНрддрдорд╛рди рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреА рд╕реВрдЪреА, рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд), рдирдВрддрд░ рдЕрд╢рд╛ рдбреЗрдЯрд╛рдЪреА рд░рдЪрдирд╛ рдЖрдгрд┐ рдореВрд▓реНрдпреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реА рдЬрд╛рд╡реАрдд. рдмрд╛рд╣реНрдп рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдмрд░реНрдпрд╛рдЪрджрд╛ рдмрджрд▓рдд рдЕрд╕рд▓реНрдпрд╛рд╕ рд╣реЗ рд╡рд┐рд╢реЗрд╖рддрдГ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ.
рдЖрдореНрд╣реА рдХрд░реВ рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЖрдгрд┐ рд░реЗрдХреЙрд░реНрдб рдХрд░рд╛ GitLab рдордзреАрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ (рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд) рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдлреЙрд░реНрдордордзреНрдпреЗ рдкреБрдвреЗ рдкрд╛рдард╡рд╛ GitLab CI рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЬреЙрдмреНрд╕ (рдмрд╛рдВрдзрдгреЗ, рддреИрдирд╛рдд рдХрд░рдгреЗ, рд╕рд╛рдл рдХрд░рдгреЗ) рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓ werf.yaml.
рд╕реНрдЯреЗрдЬрдЪреА рд╕рд╛рдордЧреНрд░реА рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рдлрд╛рдЗрд▓ .gitlab-ci.yml:
Prebuild:
stage: prebuild
script:
- bash ./generate_artifacts 1> common_envs.sh
- cat ./common_envs.sh
artifacts:
paths:
- releases.yml
- common_envs.sh
expire_in: 2 weekрдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрдордзреАрд▓ рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛ рдХреЕрдкреНрдЪрд░ рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреБрдореНрд╣реА рдорд╛рдирдХ GitLab CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЯрдкреНрдкреЗ рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдЖрдгрд┐ рддреИрдирд╛рдд рдХрд░реВ рд╢рдХрддрд╛: рддрдпрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ рддреИрдирд╛рдд рдХрд░рд╛. рдЖрдореНрд╣реА werf GitHub рд░реЗрдкреЙрдЬрд┐рдЯрд░реА (рдореНрд╣рдгрдЬреЗ рдЬреЗрд╡реНрд╣рд╛ GitHub рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдмрджрд▓ рд╣реЛрддрд╛рдд рддреЗрд╡реНрд╣рд╛) рд╣реБрдХ рд╡рд╛рдкрд░реВрди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрд╡рддрдГ рд▓рд╛рдБрдЪ рдХрд░рддреЛ. рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ GitLab рдкреНрд░рдХрд▓реНрдк рдЧреБрдгрдзрд░реНрдорд╛рдВрдордзреНрдпреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛ рдЖрдврд│реВ рд╢рдХрддреЛ CI/CD рд╕реЗрдЯрд┐рдВрдЧреНрдЬ -> рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЯреНрд░рд┐рдЧрд░, рдЖрдгрд┐ рдирдВрддрд░ GitHub рдордзреНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдмрд╣реБрдХ рддрдпрд╛рд░ рдХрд░рд╛ (рд╕реЗрдЯрд┐рдВрдЧреНрдЬ -> рд╡реЗрдмрд╣реБрдХ).
рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рдЕрд╕реЗ рджрд┐рд╕реЗрд▓:
Build:
stage: build
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf build-and-publish --stages-storage :local
except:
refs:
- schedules
dependencies:
- Prebuild GitLab рд╕реНрдЯреЗрдЬрдкрд╛рд╕реВрди рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬрд╡рд░ рджреЛрди рдХрд▓рд╛рдХреГрддреА рдЬреЛрдбреЗрд▓ рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯ рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рд╕рд╣ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХрд░рддреЛ source common_envs.sh. рд╢реЗрдбреНрдпреВрд▓рдиреБрд╕рд╛рд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рд╢рд┐рд╡рд╛рдп рдЖрдореНрд╣реА рд╕рд░реНрд╡ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рд╕реБрд░реВ рдХрд░рддреЛ. рд╡реЗрд│рд╛рдкрддреНрд░рдХрд╛рдиреБрд╕рд╛рд░, рдЖрдореНрд╣реА рд╕рд╛рдлрд╕рдлрд╛рдИрд╕рд╛рдареА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд╛рд▓рд╡реВ - рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдЕрд╕реЗрдВрдмреНрд▓реА рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.
рдЙрдкрдпреЛрдЬрди рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдЖрдореНрд╣реА рджреЛрди рдХрд╛рд░реНрдпрд╛рдВрдЪреЗ рд╡рд░реНрдгрди рдХрд░реВ - YAML рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд╛рдкрд░реВрди рдЙрддреНрдкрд╛рджрди рдЖрдгрд┐ рдбреЗрд╡реНрд╣ рд╕рд░реНрдХрд┐рдЯреНрд╕рдЪреНрдпрд╛ рддреИрдирд╛рддреАрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ:
.base_deploy: &base_deploy
stage: deploy
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf deploy --stages-storage :local
dependencies:
- Prebuild
except:
refs:
- schedules
Deploy to Production:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: prod
environment:
name: production
url: werf.io
only:
refs:
- master
except:
variables:
- $REVIEW_SHA
refs:
- schedules
Deploy to Test:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: dev
environment:
name: test
url: werf.test.flant.com
except:
refs:
- schedules
only:
variables:
- $REVIEW_SHA рдХрд╛рд░реНрдпреЗ рдореВрд▓рдд: рдХреЗрд╡рд│ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрджрд░реНрдн рджрд░реНрд╢рд╡рд┐рдгреНрдпрд╛рдордзреНрдпреЗ рднрд┐рдиреНрди рдЕрд╕рддрд╛рдд рдЬреНрдпрд╛рдордзреНрдпреЗ werf рдиреЗ рддреИрдирд╛рддреА рдХрд░рд╛рд╡реА (WERF_KUBE_CONTEXT), рдЖрдгрд┐ рд▓реВрдк рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╕реЗрдЯ рдХрд░рдгреЗ (environment.name ╨╕ environment.url), рдЬреЗ рдирдВрддрд░ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд. рдЖрдореНрд╣реА рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕рдЪреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг... рдкреНрд░рд╢реНрдирд╛рддреАрд▓ рд╡рд┐рд╖рдпрд╛рд╕рд╛рдареА рддреЗрдереЗ рдХрд╛рд╣реАрд╣реА рдордиреЛрд░рдВрдЬрдХ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЖрдкрдг рддреЗ рд╢реЛрдзреВ рд╢рдХрддрд╛ .
рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢
werf рдЖрд╡реГрддреНрддреНрдпрд╛ рдмрд▒реНрдпрд╛рдЪрджрд╛ рд░рд┐рд▓реАрдЭ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдирд╡реАрди рдкреНрд░рддрд┐рдорд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддреАрд▓ рдЖрдгрд┐ рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рд╕рддрдд рд╡рд╛рдврдд рдЬрд╛рдИрд▓. рдореНрд╣рдгреВрди, рдзреЛрд░рдгрд╛рдВрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдкреНрд░рддрд┐рдорд╛ рдХреНрд▓реАрдирдЕрдк рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЕрддреНрдпрд╛рд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ.
рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓рдГ
- рдордзреНрдпреЗ рд╕рд╛рдлрд╕рдлрд╛рдИрдЪреА рдкрд╛рдпрд░реА рдЬреЛрдбрд╛
.gitlab-ci.yml; - рд╕реНрд╡рдЪреНрдЫрддрд╛ рдХрд╛рд░реНрдпрд╛рдЪреА рдирд┐рдпрддрдХрд╛рд▓рд┐рдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЬреЛрдбрд╛;
- рд▓реЗрдЦрди рдкреНрд░рд╡реЗрд╢ рдЯреЛрдХрдирд╕рд╣ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рд╛.
рдордзреНрдпреЗ рд╕реНрд╡рдЪреНрдЫрддрд╛ рд╕реНрдЯреЗрдЬ рдЬреЛрдбрдгреЗ .gitlab-ci.yml:
Cleanup:
stage: cleanup
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- docker login -u nobody -p ${WERF_IMAGES_CLEANUP_PASSWORD} ${WERF_IMAGES_REPO}
- werf cleanup --stages-storage :local
only:
refs:
- schedules
рдЖрдореНрд╣реА рдЬрд╡рд│рдЬрд╡рд│ рд╣реЗ рд╕рд░реНрд╡ рдереЛрдбреЗ рд╡рд░ рдкрд╛рд╣рд┐рд▓реЗ рдЖрд╣реЗ - рдлрдХреНрдд рддреЗ рд╕рд╛рдл рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдердо рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреАрд▓ рдкреНрд░рддрд┐рдорд╛ рд╣рдЯрд╡рд┐рдгреНрдпрд╛рдЪреЗ рдЕрдзрд┐рдХрд╛рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЯреЛрдХрдирд╕рд╣ рд▓реЙрдЧ рдЗрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЬрд╛рд░реА рдХреЗрд▓реЗрд▓реЗ GitLab CI рдЯрд╛рд╕реНрдХ рдЯреЛрдХрди рдЕрд╕реЗ рдХрд░рдд рдирд╛рд╣реА. рдЕрд╕реЗ рдЕрдзрд┐рдХрд╛рд░ рдЖрд╣реЗрдд). рдЯреЛрдХрди рдЖрдЧрд╛рдК GitLab рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рдореВрд▓реНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ WERF_IMAGES_CLEANUP_PASSWORD рдкреНрд░рдХрд▓реНрдк (CI/CD рд╕реЗрдЯрд┐рдВрдЧреНрдЬ -> рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕).
рдЖрд╡рд╢реНрдпрдХ рд╡реЗрд│рд╛рдкрддреНрд░рдХрд╛рд╕рд╣ рд╕рд╛рдлрд╕рдлрд╛рдИрдЪреЗ рдХрд╛рд░реНрдп рдЬреЛрдбрдгреЗ рдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ CI/CD ->
рд╡реЗрд│рд╛рдкрддреНрд░рдХ.
рддреЗрдЪ рдЖрд╣реЗ: рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреАрд▓ рдкреНрд░рдХрд▓реНрдк рдпрд╛рдкреБрдвреЗ рди рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдорд╛рдВрдордзреВрди рд╕рддрдд рд╡рд╛рдврдгрд╛рд░ рдирд╛рд╣реА.
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рднрд╛рдЧрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдг рдХрд░реВрди рджреЗрддреЛ рдХреА рд▓реЗрдЦрд╛рддреАрд▓ рд╕рдВрдкреВрд░реНрдг рд╕реВрдЪреА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд :
- ;
- .
рдкрд░рд┐рдгрд╛рдо
- рдЖрдореНрд╣рд╛рд▓рд╛ рддрд╛рд░реНрдХрд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рд░рдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реА: рдкреНрд░рддрд┐ рдЖрд╡реГрддреНрддреА рдПрдХ рдХрд▓рд╛рдХреГрддреА.
- рдЕрд╕реЗрдВрдмреНрд▓реА рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдЖрд╣реЗ рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ werf рдЪреНрдпрд╛ рдирд╡реАрди рдЖрд╡реГрддреНрддреНрдпрд╛ рд░рд┐рд▓реАрдЭ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдореЕрдиреНрдпреБрдЕрд▓ рдмрджрд▓рд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ: рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░реАрд▓ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
- рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЖрдХреГрддрд┐рдмрдВрдзрд╛рдВрд╕рд╛рдареА рджреЛрди рдкреНрд░рддрд┐рдорд╛ рдПрдХрддреНрд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
- рд╣реЗ рддреНрд╡рд░реАрдд рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдХрд╛рд░рдг рдХреЕрд╢рд┐рдВрдЧ рд╢рдХреНрдп рддрд┐рддрдХреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ - рдЬреЗрд╡реНрд╣рд╛ werf рдЪреА рдирд╡реАрди рдЖрд╡реГрддреНрддреА рд░рд┐рд▓реАрдЭ рдХреЗрд▓реА рдЬрд╛рддреЗ рдХрд┐рдВрд╡рд╛ GitHub рд╣реБрдХрд▓рд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрдорд┐рдЯрд╕рд╛рдареА рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рдХреЗрд╡рд│ рдмрджрд▓рд▓реЗрд▓реНрдпрд╛ рдЖрд╡реГрддреНрддреАрд╕рд╣ рд╕рдВрдмрдВрдзрд┐рдд рдХрд▓рд╛рдХреГрддреА рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддреЗ.
- рди рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдорд╛ рд╣рдЯрд╡рд┐рдгреНрдпрд╛рдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА: werf рдзреЛрд░рдгрд╛рдВрдиреБрд╕рд╛рд░ рд╕рд╛рдлрд╕рдлрд╛рдИ рдХреЗрд▓реНрдпрд╛рдиреЗ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░рд╛рд╣реАрд▓.
рдирд┐рд╖реНрдХрд░реНрд╖
- werf рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрд╡рддрдГрдЪ рдХреЕрд╢рд┐рдВрдЧ рдЖрдгрд┐ рдмрд╛рд╣реНрдп рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдирд╛ рдХреЕрд╢рд┐рдВрдЧрдореБрд│реЗ рдЕрд╕реЗрдВрдмреНрд▓реАрд▓рд╛ рддреНрд╡рд░реАрдд рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
- рдмрд╛рд╣реНрдп Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрд╕рд╣ рдХрд╛рд░реНрдп рдХреЗрд▓реНрдпрд╛рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рд╕рдВрдкреВрд░реНрдг рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдХреНрд▓реЛрди рдХрд░рдгреНрдпрд╛рдЪреА рдХрд┐рдВрд╡рд╛ рдЕрд╡рдШрдб рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд▓реЙрдЬрд┐рдХрд╕рд╣ рдЪрд╛рдХ рдкреБрдиреНрд╣рд╛ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реАрд╢реА рд╣реЛрддреЗ. werf рдХреЕрд╢реЗ рд╡рд╛рдкрд░рддреЛ рдЖрдгрд┐ рдХреНрд▓реЛрдирд┐рдВрдЧ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдХрд░рддреЛ рдЖрдгрд┐ рдирдВрддрд░ рд╡рд╛рдкрд░рддреЛ
fetchрдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛рдЪ. - рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЧреЛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛
werf.yamlрдЬреНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдмрд╛рд╣реНрдп рдбреЗрдЯрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЛ рдЕрд╢рд╛ рдЕрд╕реЗрдВрдмреНрд▓реАрдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгреНрдпрд╛рд╕ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрдиреБрдорддреА рджреЗрддреЗ. - рдорд╛рдЙрдВрдЯ рдЗрди рд╡реЗрд░реНрдл рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рдХрд▓рд╛рдХреГрддреАрдВрдЪреНрдпрд╛ рд╕рдВрдХрд▓рдирд╛рд╕ рд▓рдХреНрд╖рдгреАрдп рдЧрддреА рдорд┐рд│рддреЗ - рдХреЕрд╢реЗрдореБрд│реЗ, рдЬреЗ рд╕рд░реНрд╡ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╕рд╛рдареА рд╕рд╛рдорд╛рдиреНрдп рдЖрд╣реЗ.
- werf рдХреНрд▓реАрдирдЕрдк рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ, рдЬреЗ рдбрд╛рдпрдиреЕрдорд┐рдХрд▓реА рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХрд░рддрд╛рдирд╛ рд╡рд┐рд╢реЗрд╖рддрдГ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ.
PS
рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:
- ┬л";
- ┬л";
- ┬л";
- ┬л┬╗.
рд╕реНрддреНрд░реЛрдд: www.habr.com
