CI \ CD рдЯреВрд▓ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЛ Microsoft, Oculus, Red Hat, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдлреЗрд░рд╛рд░реА рдФрд░ NASA рдХреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреНрд░рд╛рдВрдб рдорд╣рдВрдЧреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╕реЗ рдПрдХ рд╕рд╢рд░реНрдд рд╕реНрдЯрд╛рд░реНрдЯ-рдЕрдк рдФрд░ рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдмрд░реНрджрд╛рд╢реНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд▓реЗрдХрд┐рди рдЯреВрд▓ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдЫреЛрдЯреА рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЖрдк рдХреНрдпрд╛ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ - рд╣рдо рдЖрдЧреЗ рдмрддрд╛рдПрдВрдЧреЗред
рдлреЛрдЯреЛрдЬ- Csaba Balazs - рдЕрдирд╕реНрдкреНрд▓реИрд╢
рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ CI рд╕рд░реНрд╡рд░ рдЬреЛ PHP рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣
PHPCI рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдХрд╛рдВрдЯрд╛ рд╣реИред PHPCI рд╕реНрд╡рдпрдВ рдЕрднреА рднреА рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЬреИрд╕реА рд╕рдХреНрд░рд┐рдпрддрд╛ рдирд╣реАрдВред
PHP рд╕реЗрдВрд╕рд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА GitHub, GitLab, Mercurial рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдХрд░рдг Atoum, PHP Spec, Behat, Codeception рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕
рдлрд╛рдЗрд▓ рд╣реИ :
test: atoum: args: "command line arguments go here" config: "path to config file" directory: "directory to run tests" executable: "path to atoum executable"
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ PHP рд╕реЗрдВрд╕рд░ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ (рд╕реНрд╡рдпрдВ-рд╣реЛрд╕реНрдЯ) рд╣реЛрд╕реНрдЯ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХрд╛рд░реНрдп рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рд▓реЗрдЦрди рджреНрд╡рд╛рд░рд╛ рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ -
рдпрд╣ GitHub рдкрд░ рд╣реИ ред
рджреВрд░рд╕реНрде рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд░реЗрдХреНрд╕ рдЫреЛрдЯрд╛ рд╣реИред рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрдВрдЬреАрдирд┐рдпрд░ рдлреЗрд░реЗрдВрдХ рдЕрд░реНрдХреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд░реЗрдХреНрд╕ рдХрд╛ рдХрд╛рдо рдкрд░реНрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рднрд╛рд╖рд╛ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ - рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдирдХрд▓) рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдХреНрд╕рд░ рджрд╕ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреА рд╣реИрдВред рдпрд╣рд╛рдБ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдФрд░ рдЕрдкрдЯрд╛рдЗрдо рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
use Rex -feature => ['1.3']; user "my-user"; password "my-password"; group myservers => "mywebserver", "mymailserver", "myfileserver"; desc "Get the uptime of all servers"; task "uptime", group => "myservers", sub { my $output = run "uptime"; say $output; };
рд╣рдо
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдФрд░
рдИ-рдмреБрдХ рд╕реЗ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рдд рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рд╡рд┐рддрд░рдг рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рд╣реИред рдЗрд╕рдХрд╛ рдХреЛрдб рдЦреБрд▓рд╛ рд╣реИ рдФрд░
GitHub рдкрд░ рднрдВрдбрд╛рд░ рдореЗрдВ
рд╣реИ ред рдЯреВрд▓ рдХрд╛ рд▓реЗрдЦрдХ
рдиреЛрд╡реЗрд▓ рд╣реИ ред рдЙрд╕рдиреЗ SuSE рд╡рд┐рддрд░рдг рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛, рдФрд░ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ OpenSUSE рдмрд┐рд▓реНрдб рд╕реЗрд╡рд╛ рдХрд╣рд╛ рдЧрдпрд╛ред рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдУрдкрди рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд┐рд╕ рдХрд╛
рдЙрдкрдпреЛрдЧ рдУрдкрдирдПрд╕рдИрдПрд╕рдИ, рдЯрд┐рдЬрд╝реЗрди рдФрд░ рд╡реАрдбрд┐рдпреЛрд▓реИрди рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреВрд▓ рдбреЗрд▓, рдПрд╕рдЬреАрдЖрдИ рдФрд░ рдЗрдВрдЯреЗрд▓ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЫреЛрдЯреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рд╕реЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП, рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдПрдХ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ (
рдкреАред 10 ) рдПрдХрддреНрд░ рдХрд┐рдпрд╛ред рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдпрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ - рдЖрдкрдХреЛ рдЗрд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдпрд╛ рдПрдХ рд▓реЛрд╣реЗ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреИрд╕рд╛ рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдкреВрд░реЗ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдЙрдкрдХрд░рдг рдиреЗ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдореБрджрд╛рдп рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐
рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдбреЗрд╡рд▓рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ
рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛
рдерд╛ , рдЬреЛ рдЦреБрд▓реЗ рдУрдПрд╕ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдерд╛ред рд╡рд┐рд╖рдп рдордВрдЪреЛрдВ рдкрд░ рдПрдХ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдвреВрдВрдврдирд╛
рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред рд▓реЗрдХрд┐рди Quora рдХреЗ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ Freenode рдкрд░
IRC рдЪреИрдЯ рдореЗрдВ, рд╕рдореБрджрд╛рдп рдХреЗ рд╕рджрд╕реНрдп рд╕реНрд╡реЗрдЪреНрдЫрд╛ рд╕реЗ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред рдЫреЛрдЯреЗ рд╕рдореБрджрд╛рдп рдХреА рд╕рдорд╕реНрдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ (рдкреАрдбреАрдПрдл рдФрд░ рдИрдкреАрдпреВрдмреА)
рдореЗрдВ рд╡рд░реНрдгрд┐рдд
рд╣реИ ред рд╡рд╣рд╛рдВ рдЖрдк рдУрдмреАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕
рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдФрд░ рдорд╛рдорд▓реЗ рд╣реИрдВ)ред
рдПрдХ рдЦреБрд▓рд╛ рдЯреВрд▓ (
GitHub ) рдЬреЛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрд╡рд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдЯреНрд░реЛрд▓рдЯреЗрдпрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд░рдВрдбреЗрдХ рдордВрдЪ рдХреА "рдмреЗрдЯреА" рд╣реИред рд░рдВрдбреЗрдХ рдиреЗ 2010 рдореЗрдВ рдЙрд╕рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЧрдП рдФрд░ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХреА - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрдкреЗрдЯ, рд╢реЗрдл, рдЧрд┐рдЯ рдФрд░ рдЬреЗрдирдХрд┐рдиреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдгред
рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдж рд╡реЙрд▓реНрдЯ рдбрд┐рдЬрд╝рдиреА рдХрдВрдкрдиреА , рд╕реЗрд▓реНрд╕рдлреЛрд░реНрд╕ рдФрд░ рдЯрд┐рдХрдЯрдорд╛рд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ Rundeck рдХреЛ Apache v2.0 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред
рд░реЗрдбрдбреЗрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд░реЗрдбрд┐рдЯ рдирд┐рд╡рд╛рд╕реА рдХрд╛
рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рджрдо рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рд╕рд╛рде, рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд
рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдИ-рдкреБрд╕реНрддрдХреЛрдВ рдиреЗ рдЙрдирдХреА рдорджрдж рдХреАред
рдЖрдк рдСрдирд▓рд╛рдЗрди рдЯреВрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рддреНрд╡рд░рд┐рдд рдЧрд╛рдЗрдб рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдПрдХ рдЦреБрд▓рд╛ рдЙрдкрдХрд░рдг (
GitHub ) рдХреЛрдб рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ 2007 рдореЗрдВ
рдереЙрдЯрд╡рд░реНрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рддрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреНрд░реВрдЬрд╝ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред
рдСрдЯреЛрд╕реАрдбреА рдСрдЯреЛрдбрд░, рдПрдХ рд╡рдВрд╢рд╛рд╡рд▓реА рд╡рдВрд╢рд╛рд╡рд▓реА рд╕реЗрд╡рд╛ рдФрд░ рдПрдХ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдкреНрд░рджрд╛рддрд╛ рдмрд╛рд░реНрдХрд▓реЗрдХрд╛рд░реНрдб, GoCD рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрдХрд░рдг рдХреЗ рдПрдХ рдЪреМрдерд╛рдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рдЫреЛрдЯреЗ рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИрдВ ред
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рдмреАрдЪ рд╕реЗрд╡рд╛ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЛ рдЗрд╕рдХреЗ рдЦреБрд▓реЗрдкрди рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдЕрдкрд╛рдЪреЗ v2.0 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, GoCD
рдореЗрдВ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ - рдСрдерд░рд╛рдЗрдЬреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХреНрд▓рд╛рдЙрдб рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдпрд╣ рдкреНрд░рдгрд╛рд▓реА рдорд╛рд╕реНрдЯрд░
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд╛рдлреА рдХрдард┐рди рд╣реИ - рдЗрд╕рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдФрд░ рдЯреАрдо рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд░рд╛рдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдЬреЗрдВрдЯреЛрдВ
рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░
рдХрд░рдиреЗ рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВред
рддрд╕реНрд╡реАрд░реЗрдВ - рдореИрдЯ рд╡рд╛рдЗрд▓реНрдбрдмреЛрд░ - рдЕрдирдкреНрд▓реИрд╢рдпрджрд┐ рдЖрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ GoCD рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЖрдк
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕реНрд░реЛрдд рдХреЗ
рд░реВрдк рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде
GoCD рдбреЗрд╡рд▓рдкрд░ рдмреНрд▓реЙрдЧ рдХреА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреЗрдирдХрд┐рдВрд╕ рдХреЛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ CI \ CD рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ
рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рдирдХ
рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ - рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдЪрдпрди рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдЯреВрд▓ 2011 рдореЗрдВ рдУрд░реЗрдХрд▓ рд╕реЗ рд╣рдбрд╕рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА
рдПрдХ рд╢рд╛рдЦрд╛ рдмрди рдЧрдпрд╛ред
рдЖрдЬ, рд╡реЗ рдирд╛рд╕рд╛, рдирд┐рдВрдЯреЗрдВрдбреЛ рдФрд░ рдЕрдиреНрдп рдмрдбрд╝реЗ рд╕рдВрдЧрдардиреЛрдВ рдореЗрдВ рдЬреЗрдирдХрд┐рдиреНрд╕ рдХреЗ рд╕рд╛рде
рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐,
8% рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджрд╕ рд▓реЛрдЧреЛрдВ рддрдХ рдХреЗ рдЫреЛрдЯреЗ рд╕рдореВрд╣ рд╣реИрдВред рдЙрддреНрдкрд╛рдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдХреНрдд рд╣реИ рдФрд░
рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдЬреЗрдирдХрд┐рдВрд╕ рдХреЛ рдЦреБрдж рд╣реЛрд╕реНрдЯ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╕рд╛рдзрди рдХреЗ рдкреВрд░реЗ рдЬреАрд╡рди рдореЗрдВ, рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдореБрджрд╛рдп рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
Reddit рдФрд░
Google рд╕рдореВрд╣ рдкрд░ рдереНрд░реЗрдб рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЬреЗрдирдХрд┐рдВрд╕ рдкрд░ рд╕рд╛рдордЧреНрд░реА рднреА рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╣реИрдмреЗ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдореБрджрд╛рдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ,
рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рдПрдХ
рдЧрд╛рдЗрдб рд╣реИ ред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧрд╛рдЗрдб рдФрд░ рдкреБрд╕реНрддрдХреЛрдВ рдХреА рднреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:
рдЬреЗрдирдХрд┐рдВрд╕ рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рддреГрддреАрдп-рдкрдХреНрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдкрд╣рд▓рд╛
рдХреЛрдб рдкреНрд▓рдЧрдЗрди рдХреЗ
рд░реВрдк рдореЗрдВ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ ред рдпрд╣ рдкрдардиреАрдп рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЬреЗрдирдХрд┐рдВрд╕ рд╕реЗрдЯрдЕрдк рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдХрд░рдг рдХреЗ рдЧрд╣рди рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рднреА рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рджреВрд╕рд░рд╛
рдЬреЗрдирдХрд┐рдВрд╕ рдПрдХреНрд╕ рдХреНрд▓рд╛рдЙрдб рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдпрд╣ рдХреБрдЫ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдХреЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЖрдИрдЯреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рддреИрдирд╛рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрдХреНрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рд░ рдмрд╛рд░ рдХреЛрдб рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдЬрдм рднреА рдЗрд╕рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрдкрдХрд░рдг рдХреЗ рд▓реЗрдЦрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдмреНрд░рд╛рдпрди рд╡рд╛рд░реНрдирд░ (рдмреНрд░рд╛рдпрди рд╡рд╛рд░реНрдирд░) рдереЗред рдЖрдЬ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдбрдмреЛрдЯ рдУрд╡рд░рд╕рд╛рдЗрдЯ рд╕рдорд┐рддрд┐ рдХреЗ рдкрд╣рд▓ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛
рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдЫрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдмрд┐рд▓реНрдбрдмреЛрдЯ рдХрд╛
рдЙрдкрдпреЛрдЧ LLVM, MariaDB, рдмреНрд▓реЗрдВрдбрд░ рдФрд░ Dr.Web рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ wxWidgets рдФрд░ Flathub рдЬреИрд╕реА рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рд╕рднреА рдЖрдзреБрдирд┐рдХ рд╡реАрд╕реАрдПрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рдЪреАрд▓рд╛ рдирд┐рд░реНрдорд╛рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ
рдЖрдИрдмреАрдПрдо рд╕реЗ рдПрдХ рддреНрд╡рд░рд┐рдд
рдЧрд╛рдЗрдб рд╣реИ ред
рдмреЗрд╢рдХ, рдпреЗ рд╕рднреА DevOps рдЯреВрд▓ рдирд╣реАрдВ рд╣реИрдВ , рдЬрд┐рди рдкрд░ рдЫреЛрдЯреЗ рд╕рдВрдЧрдардиреЛрдВ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЙрдкрдХрд░рдг рджреЗрдВ, рдФрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдПрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдмреНрд▓реЙрдЧ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ: