CI / CD рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдбреЗрдЯ: рдЯреАрдорд╕рд┐рдЯреА

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

рдореБрдЭреЗ рдЖрдкрдХреЛ рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рдХреА рд╕рд╛рдордЧреНрд░реА, рд╕рд╛рде рд╣реА рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдпрд╛рдж рджрд┐рд▓рд╛рддреА рд╣реИред

рднрд╛рдЧ 1: рдХреНрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдпреЛрдЬрдирд╛, рдереЛрдбрд╝рд╛ рд╕рд╛ рдорд╛рд░ред рдореИрдВ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рддрдХрдиреАрдХреА рдХрд╣реВрдВрдЧрд╛ред
рднрд╛рдЧ 2: рдЯреАрдорд╕рд┐рдЯреАред
рднрд╛рдЧ 3: рдСрдХреНрдЯреЛрдкрд╕ рдХреА рддреИрдирд╛рддреАред
рднрд╛рдЧ 4: рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗред рдЕрдкреНрд░рд┐рдп рдХреНрд╖рдг, рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛рдПрдВ, рд╕рдВрднрд╡рддрдГ рдПрдлрдПрдХреНрдпреВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЗрд╕реЗ рдирд┐рдХрдЯ-рддрдХрдиреАрдХреА рднреА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди рдЖрдзреБрдирд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдПрдХ рдмрд┐рд▓реНрдб рдХреЛ cnet рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд┐рд░реНрдорд╛рдг рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдпрд╣ рд╢реБрд░реВ рд╣реБрдЖ (рдЬреИрд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рдзрдорд╛рдХрд╛, рд╣рд╛рдБ)ред рдлрд┐рд░, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЬреЛ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрд╕рдиреЗ ctrl + c, ctrl + v рджрдмрд╛рдпрд╛, рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдФрд░ рдмрд╛рдж рдХреЗ рд╕рднреА рд╕рдордп рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб 60G рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛред рдФрд░ рдпреЗ рд╕рд┐рд░реНрдл рд╕реНрд░реЛрдд рд╣реИрдВ! рдФрд░ рд▓реЙрдЧ рд╣реИрдВ, рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдЕрд╕реНрдерд╛рдпреА рдлрд╛рдЗрд▓реЗрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдХреЗрд╡рд▓ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдкреБрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреЛрдИ рднреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рд▓реНрдб рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╣реА рдХреЛрд░ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдпрд╣ рдЕрд╕реЗрдВрдмрд▓реА рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ (рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде) рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЧрдИ рдереАредрдмрд┐рд▓реНрдб рдкрд░рд┐рдгрд╛рдо (90% рд╕рдорд╛рди) рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рдЧрд┐рдЯ рддреИрдирд╛рддреА) рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдирдХреА рдЬрдЧрд╣ рд▓реЗ рд▓реАред рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред 

рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ 


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

рдЫрд╡рд┐

env.apiUserName рдФрд░ env.apiUserPassword рдПрдкреАрдЖрдИ teamcity рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪрддрд╛ рд╣реИрдВ (рдЬреЛ рдмрд╛рдж рдореЗрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), env.buildPath рдФрд░ env .SourcePath - рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрде, рдХреНрд░рдорд╢рдГ, env.octoApiKey рдФрд░ env.octoUrl - token рдФрд░ octopus urlред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рднреА env.teamcityUrl рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИред рдЦреИрд░, env.tt.exe- рдкрд╛рда рдкрд░рд┐рд╡рд░реНрддрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдкрдеред рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕рднреА рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред

рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдСрдХреНрдЯреЛрдкрд╕ рдбрд┐рдкреНрд▓реЙрдп рдПрдХреАрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред 

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

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреНрд░реЗрдХрдбрд╛рдЙрди, рд╡рд░реНрдЬрдирд┐рдВрдЧ, рдирд╛рдо


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

рд╣рдо рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдВрдЧреЗ: major.minor.patch, рдЬрд╣рд╛рдВ рдкреНрд░рдореБрдЦ рдЕрднреА рднреА 1 рд╣реИ, рдорд╛рдореВрд▓реА - рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдХрд╛рдЙрдВрдЯрд░, рдкреИрдЪ - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдХрд╛рдЙрдВрдЯрд░ рддреИрдирд╛рдд рдХрд░реЗрдВ (рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрд╢рд╛ 0)ред

рдиреЛрдЯ: рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд░реНрдгрди рдпрд╣рд╛рдБ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдЧрд┐рдЯ рдЯреИрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛред

рдЫрд╡рд┐

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ 1 рдкреНрд░рдореБрдЦ рд╣реИ, 95 рдЫреЛрдЯрд╛ рд╣реИ, рдФрд░ 1 рдкреИрдЪ рд╣реИред

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

рддреИрдпрд╛рд░реА рдХреЗ рдЪрд░рдг рдореЗрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдХреЗ рд╕рдореНрдореЗрд▓рди рдкрд░ рдПрдХ рдЕрд▓рдЧ рдмреИрдардХ рдереАред рдпрд╣ рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ (рдпрд╣ рд╕рд┐рд░реНрдл рдерд╛), рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдПрдХ рдЬреИрд╕рд╛ рдирд╣реАрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╛рдо рдореЗрдВ рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реЛрддреА рдереАред рдирддреАрдЬрддрди, рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдереЗ:
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдирдЯрд╛рдЗрдк.рдЗрдиреНрд╡рд╛рдпрд░рдореЗрдВрдЯ.рдореЙрдбрдирдореЗ.рдХреЙрдирдлрд┐рдЧрдЬрд╣рд╛рдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯрд╛рдЗрдк AppSettings, Web, рдЖрджрд┐ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░реНрдпрд╛рд╡рд░рдг - рд╡рд┐рдХрд╛рд╕, рдкрд░реАрдХреНрд╖рдг, рдордВрдЪрди, рдЙрддреНрдкрд╛рджрдиред ModName рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рд╣реИред

рдореЙрдбреНрдпреВрд▓


рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред 

рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ:

  1. рдирдЧреЗрдЯ рд░рд┐рд╕реНрдЯреЛрд░ (рдиреБрдЧреЗрдЯ рдЗрдВрд╕реНрдЯреЙрд▓рд░, рдиреБрдЧреЗрдЯ рд░рд┐рд╕реНрдЯреЛрд░) рдХрд░рддрд╛ рд╣реИ
  2. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди, рдЯреЗрдХреНрд╕реНрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо)
  3. рдмрд┐рд▓реНрдб рд╕рдорд╛рдзрд╛рди (рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрд╕рдПрд▓рдПрди)
  4. Zip рдореЗрдВ env.buildPath рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдСрдХреНрдЯреЛрдкрд╕ (рдСрдХреНрдЯреЛрдкрд╕ рдХреА рддреИрдирд╛рддреА: рдкреБрд╢ рдкреИрдХреЗрдЬ) рдореЗрдВ рдзрдХреЗрд▓рддрд╛ рд╣реИ
  5. рд░рд┐рд▓реАрдЬ рдирд┐рд░реНрдорд╛рдг (рдХреЛрдИ рддреИрдирд╛рддреА рдирд╣реАрдВ) (рдСрдХреНрдЯреЛрдкрд╕ рддреИрдирд╛рдд рд░рд┐рд▓реАрдЬ)
  6. рдкреИрдЪ рд╕рдВрд╕реНрдХрд░рдг (рдкрд╛рд╡рд░рд╢реЗрд▓) рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ

рд╡рд╣рд╛рдБ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддреИрдирд╛рдд рд╣реИрдВ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ:

  1. рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг (рдЪрд░рдг 2) (рдСрдХреНрдЯреЛрдкрд╕ рддреИрдирд╛рдд рдкреБрд╢ рдкреИрдХреЗрдЬ) рдкрд░ рдЙрддреНрдкрдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдКрдкрд░ рдЙрдард╛рддрд╛ рд╣реИ
  2. рдХреЛрд░ рд░рд┐рд▓реАрдЬ рдЬрд╛рд░реА рдХрд░реЗрдВ (рдЬреЛ рдмрд┐рд▓реНрдб рдХреЗ рдЪрд░рдг 6 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛) (рдСрдХреНрдЯреЛрдкрд╕ рддреИрдирд╛рдд: рддреИрдирд╛рддреА рд░рд┐рд▓реАрдЬ)
  3. рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд┐рд▓реАрдЬрд╝ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЪрд░рдг 1 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛) (рдСрдХреНрдЯреЛрдкрд╕ рддреИрдирд╛рдд: рддреИрдирд╛рддреА рд░рд┐рд▓реАрдЬрд╝)
  4. рд▓реЙрдЧ рдореЗрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбреЛрдореЗрди рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдкрд░реАрдХреНрд╖рдХ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрджрдо)ред (рд╢рдХреНрддрд┐ рдХреЛрд╢рд┐рдХрд╛)ред

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

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

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЖрдЗрдП рдХреБрдЫ рдЪрд░рдгреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВред

рдирд┐рд░реНрдорд╛рдгред рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕


рдЫрд╡рд┐

рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдк рдмрдирд╛рддреЗ рд╣реИрдВред рдмрд╛рдж рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Build.env


рдЫрд╡рд┐

рдпрд╣рд╛рдБ рдмреНрдпрд╛рдЬ рдХреА рд╣реИрдВ:
env.coreProjectName - рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯред рдСрдХреНрдЯреЛрдкрд╕ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред
env.Environment - рдореЙрдбреНрдпреВрд▓ рд╕рдмрдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
env.octoChannel - рдСрдХреНрдЯреЛрдкрд╕ рдореЗрдВ рд╡рд╣ рдЪреИрдирд▓ рдЬрд┐рд╕рдореЗрдВ рдкреИрдХреЗрдЯ рдЧрд┐рд░рддрд╛ рд╣реИред рдЙрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ env.Environment ред
env.serviceName рд╕рдорд╛рдзрд╛рди рдХрд╛ рдирд╛рдо рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЪрд░ рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
env.tenantRoleTag - рдСрдХреНрдЯреЛрдкрд╕ рдореЗрдВ рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рдЯреИрдЧред рдСрдХреНрдЯреЛрдкрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред

Build.4


рдЫрд╡рд┐

рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ % env.serviceName%ред% Build.number%ред рдирд┐рд░реНрдорд╛рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ .zip рдлрд╝рд╛рдЗрд▓реЗрдВ, рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдФрд░ рдмрд┐рди / рджреЗрд╢реА рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ dllред рдЕрдВрддрд┐рдо рд╡рд╛рд▓реЗ рдХреЛ рдПрдХ рдмрд╛рд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреЛрдИ рднреА рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдЫреВрдПрдЧрд╛ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдВрдЧреЗ)ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ IIS рдкреВрд▓ рджреНрд╡рд╛рд░рд╛ "рдЖрдпреЛрдЬрд┐рдд" рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕рдлрд▓ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░реЛрдХрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдХреЗ, рд╣рдо рдкреВрд▓ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рддреИрдирд╛рддреА рдХрд╛ рд╕рдордп рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдбрд╛рдЙрдирдЯрд╛рдЗрдоред

Build.5


рдЫрд╡рд┐

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреНрд╖реЗрддреНрд░ рдХреНрдпреЛрдВ рдЦрд╛рд▓реА рд╣реИред рдкреИрдХреЗрдЬ рдорд┐рд▓рдиреЗ рдкрд░, рдСрдХреНрдЯреЛрдкрд╕ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдЯреИрдЧ (рдЪреИрдирд▓реЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдЯреИрдЧ % build.number% (Build.General рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рдорд╛рди-рдкреЗрдЬрд┐рдВрдЧ) рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдХрд▓рд╛ред рдпрд╣ "рд╢реЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛" рдЪреЗрдХрдмреЙрдХреНрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рднреА рд╣реИ ред рдпрджрд┐ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдСрдХреНрдЯреЛрдкрд╕ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рдлрд▓ рдорд╛рдирддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рддреИрдирд╛рддреА рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ - рдСрдХреНрдЯреЛрдкрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗред

Build.6


рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рдЯреАрдорд╢рд┐рдк рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ рдкреЙрд╡рд░рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЬрд╛рдирдХрд╛рд░реАред

$pair = "%env.apiUserName%:%env.apiUserPassword%"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$depUri="%env.teamcityUrl%/app/rest/buildTypes?locator=snapshotDependency:(from:(build:(id:%teamcity.build.id%)),includeInitial:false)"
# Get all dependencies of main build
$result = (Invoke-RestMethod -Headers @{'Origin'='http://localhost:8090'; "Authorization"="$basicAuthValue"} -Uri $depUri)
foreach ($i in $result.buildTypes.buildType.Count) { $buildId += $result.buildTypes.buildType.id }
$buildId = $buildId | Where-Object { $_ -ne 'Module_DeployAll' }
# Reset all child build counters to 1. This build counters are patch versions in every build. (1.build.patch)
for ($i=0; $i -lt $buildId.Count; $i++) {
  $buildCounterUri = "%env.teamcityUrl%/httpAuth/app/rest/buildTypes/"+$buildId[$i]+"/settings/buildNumberCounter"
  Invoke-RestMethod -Method Put -Headers @{'accept'='text/plain'; 'Origin'='http://localhost:8090'; "Authorization"="$basicAuthValue"} -Uri $buildCounterUri -ContentType "text/plain" -Body 1
}

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

Deploy.General


рдЫрд╡рд┐

рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рд░реВрдк: 1.% dep.Module_Build.build.counter%ред% Build.counter% -staging , рдЬрд╣рд╛рдБ
% dep .odule_Build.build.counter% рдЯреАрдорд╕рд┐рдЯреА рд╕рд┐рд╕реНрдЯрдо рдЪрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдорд╛рди рд╕рдВрдЧрдд рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рд▓реНрдб рдХрд╛рдЙрдВрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП) рдирд┐рд░реНрднрд░рддрд╛)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣рд╛рдВ 1 рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, % dep.Module_Build.build.counter% рдорд╛рдореВрд▓реА рд╣реИ, рдФрд░ % build.counter% рдкреИрдЪ рд╣реИред рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрдХ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдЯреИрдЧ рд╣реИред

Deploy.Env


рдЫрд╡рд┐

рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЗрд╕рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ env.modName рдЪрд░ рдХрд╛ рдорд╛рди рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдЕрдиреНрдп рд╕рднреА рдЪрд░ рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред рдПрдХ рдСрдХреНрдЯреЛрдкрд╕ рдХреЗ рд▓рд┐рдП env.tenantModTag рдЪрд░ env.modName рд╕реЗ рдмрдирддрд╛ рд╣реИ ред

Deploy.2


рдЫрд╡рд┐

рдХреЛрд░ рдкреИрдХреЗрдЬ рддреИрдирд╛рдд рдХрд░реЗрдВред 

рд░рд┐рд▓реАрдЬрд╝ рдирдВрдмрд░ рдирд╡реАрдирддрдо - рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдЙрдкрд▓рдмреНрдз рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рдЯреИрдЧ - рдЧреНрд░рд╛рд╣рдХ / рд╕рдВрдЧрдарди рдЯреИрдЧред рдСрдХреНрдЯреЛрдкрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред
рдЕрддрд┐рд░рд┐рдХреНрдд cli рдкреИрд░рд╛рдореАрдЯрд░ред рдпрд╣рд╛рдВ рд╣рдо рдЙрд╕ рдЪреИрдирд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░рд╛ рдкреИрдХреЗрдЬ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛, рд╕рд╛рде рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рднреАред рдСрдХреНрдЯреЛрдкрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред

Deploy.3


Deploy.2 рдХреА рддрд░рд╣, рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЙрдбреНрдпреВрд▓ рдкреИрдХреЗрдЬ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Deploy.4


рдЗрд╕ рдЪрд░рдг рдХреЛ рдиреАрдЪреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рднреА рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдСрдХреНрдЯреЛрдкрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

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

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

рдЯреАрдорд╕рд┐рдЯреА: рд╕рд╛рд░рд╛рдВрд╢


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

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

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

All Articles