рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ TeamCity - 2018.1 рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рдпрд╣ рдЗрд╕ рд╡рд░реНрд╖ рд╣рдорд╛рд░реЗ CI / CD рд╕рд░реНрд╡рд░ рдХреА рдкрд╣рд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬрд╝ рд╣реИред рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИред
рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣
рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИ ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рд░рд┐рд▓реАрдЬ рдХреА рдЪрд╛рд░ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

рдирдИ рдЯреАрдорд╕рд┐рдЯреА рдХреЛрдЯрд▓рд┐рди рдбреА.рдПрд╕.рдПрд▓.
TeamCity рдХреА рдЕрдкрдиреА DSL (рдбреЛрдореЗрди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛) рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдбрд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдореВрд░реНрдд рд░реВрдк рджреЗрддреЗ рд╣реБрдП рдХреЛрдЯрд▓рд┐рди рдХреЛрдб рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 2018.1 рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕ рдбреАрдПрд╕рдПрд▓ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд╛рдо рдореЗрдВ рд▓рд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕рд░рд▓, рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реЛ рдЧрдпрд╛ред
рдЖрд╕рд╛рди рд╣реИ ред рдбреАрдПрд╕рдПрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЯреАрдорд╕рд┐рдЯреА рдХреЛ рдЕрдм рдПрдХ рдпреВрдЖрдИрдбреА рд╕рд░реНрд╡рд░ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдХреИрд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд╛рдо рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЯреАрдо рдХреЛрдб рдореЗрдВ рдПрдХ рд╕рд░рд▓ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХреЛрдб рд╣реИрдВ:
version = "2018.1" project{ buildType(HelloWorld) } object HelloWorld : BuildType({ name = "Hellow world" steps { scriptContent = "echo 'Hello world!'" } })
рд╕рд┐рдВрдЧрд▓ рдлрд╛рдЗрд▓ ред TeamCity рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛрдб рдЕрдм рдПрдХ рдлрд╝рд╛рдЗрд▓ - settings.kts рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ .teamcity рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА ред рдЪреВрдВрдХрд┐ рдХреЛрдб рдореЗрдВ рдЕрдм рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд░реНрд╡рд░ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрдВрдзрди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЙрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рднреАрддрд░ рдЕрдиреНрдп рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВред рдЙрдЪрд┐рдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрд░реЗрдВред
URL рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ ред рдХреЛрдб рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TeamCity рдХреЗ рд▓рд┐рдП, рдпрд╣ .teamcity / settings.kts рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рд▓рд┐рдВрдХ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╕рднреА рд╡рд░реНрдгрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдБ
antonarhipov (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ) рд╕реЗ рдирдП
рдХреЛрдЯрд▓рд┐рди рдбреАрдПрд╕рдПрд▓ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдореЛ рд╣реИ:
рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП
2018.1 рдореЗрдВ, рд░реАрдб-рдУрдирд▓реА рдореЛрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдЖрдкрдХреЛ рджреЛ рдЯреАрдорд╕рд┐рдЯреА рд╕рд░реНрд╡рд░реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рд╕реБрд▓рдн рдЯреАрдорд╕рд┐рдЯреА рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рдореБрдЦреНрдп рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд, рд░реАрдб-рдУрдирд▓реА рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдбреЗрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреА, рдФрд░ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдкрдВрдк рдХрд░реЗрдЧрд╛ред рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд░реАрдб-рдУрдирд▓реА рд╕рд░реНрд╡рд░ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд░реАрдб-рдУрдирд▓реА рд╕рд░реНрд╡рд░ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рдкрддрди рдХреЗ рд╕рдордп рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛ рд╕рдХреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред
рдпрд╣ рдмрдбрд╝реА рд╕реНрдерд╛рдкрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ, рдЬреЛ рдЕрдиреБрд╕реВрдЪрд┐рдд рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди рдФрд░ рдЕрдиреБрд╕реВрдЪрд┐рдд рдЕрджреНрдпрддрдиреЛрдВ рдХреЗ рджреМрд░рд╛рди CI рд╕рд░реНрд╡рд░ рддрдХ рдирд┐рд░реНрдмрд╛рдз рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред
рдмреЗрд╣рддрд░ рдбреЙрдХрд░ рд╕рдкреЛрд░реНрдЯ
рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдЯреАрдорд╕рд┐рдЯреА рдбреЛрдХрд░ рдХреЛ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ: рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛, рдбреЙрдХрдЯрд░ рдЪрд┐рддреНрд░ рдмрдирд╛рдирд╛, рдЙрдиреНрд╣реЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдирд┐рдХрд╛рд▓рдирд╛, рдбреЙрдХрд░ рдХрдорд╛рдВрдб рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ред
рдпрд╣ рд░рд┐рд▓реАрдЬрд╝ .NET рд╕реАрдПрд▓рдЖрдИ рдФрд░ рдкреЙрд╡рд░реНрд╕рд╢реЗрд▓ рдзрд╛рд╡рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЗрди рдмрд┐рд▓реНрдб рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЦреБрдж рдбреЙрдХ рд░рдирд░ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдмрд┐рд▓реНрдб, рдкреБрд╢ рдФрд░ рдЕрдиреНрдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдбреЙрдХрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдЯреАрдорд╕рд┐рдЯреА рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 рдкрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ
TeamCity AWS S3 рдкреНрд▓рдЧрдЗрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди 2018.1 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдордиреЗ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рд╡рд┐рддрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ред S3 рдПрдХреАрдХрд░рдг рдирд┐рд░реНрднрд░рддрд╛ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдФрд░ рдЗрддрдиреА рд╕рдлрд╛рдИ рд╕реЗ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ TeamCity UI рдореЗрдВ рдЗрддрдирд╛ рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ S3 рдмрд╛рд▓реНрдЯреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред
рдпрд╣рд╛рдБ рдПрдХ рдбреЗрдореЛ рд╣реИ:
рдЕрдиреНрдп рд╕реБрдзрд╛рд░
рдЕрдиреНрдп рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ, рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдм рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкреВрд░реНрд╡ рдФрд░ рдмрд╛рдж рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░рдг рдЙрдирдХреЗ рдмреАрдЪ рдЖрддреЗ рд╣реИрдВред

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

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