рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ CICD: рддреНрдпрд╣рд╛рдБ рдХреБрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреН рд░ рдХрд┐рди рдареВрд▓рд╛ рд░ рдкреНрд░рд╕рд┐рджреНрдз рдХрдореНрдкрдиреАрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдирдиреН

CICD рдЙрдкрдХрд░рдгрдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкреНрд░рд╛рдп: рдареВрд▓рд╛ рдХрдореНрдкрдиреАрд╣рд░реВрд▓рд╛рдИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрдЫрдиреН - рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯ, рдУрдХреБрд▓рд╕, рд░реЗрдб рд╣реНрдпрд╛рдЯ, рдлреЗрд░рд╛рд░реА рд░ рдирд╛рд╕рд╛ рдкрдирд┐ред рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рддреНрдпрд╕реНрддрд╛ рдмреНрд░рд╛рдиреНрдбрд╣рд░реВрд▓реЗ рдорд╣рдБрдЧреЛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд╕рдБрдЧ рдорд╛рддреНрд░ рдХрд╛рдо рдЧрд░реНрдЫрдиреН рдЬреБрди рдПрдХ рдЬреЛрдбреА рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рд░ рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд▓реЗ рдЦрд░реНрдЪ рдЧрд░реНрди рд╕рдХреНрджреИрдиред рддрд░ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рд╕рд╛рдирд╛ рдЯреЛрд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫред

рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рддрд▓ рдмрддрд╛рдЙрдиреЗрдЫреМрдВ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдХреЗрдорд╛ рдзреНрдпрд╛рди рджрд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ CICD: рддреНрдпрд╣рд╛рдБ рдХреБрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреН рд░ рдХрд┐рди рдареВрд▓рд╛ рд░ рдкреНрд░рд╕рд┐рджреНрдз рдХрдореНрдкрдиреАрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдирдиреН
╨д╨╛╤В╨╛ - Csaba Balazs - рдЕрдирд╕реНрдкреНрд▓рд╛рд╕

PHP рд╕реЗрдиреНрд╕рд░

рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд 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 рдорд╛ рдЫ.

рд░реЗрдХреНрд╕

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

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;
};

рд╣рд╛рдореА рд╕рдВрдЧ рдЙрдкрдХрд░рдг рд╕рдВрдЧ рдЖрдлреНрдиреЛ рдкрд░рд┐рдЪрд┐рдд рд╕реБрд░реБ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб ╨╕ рдИ-рдкреБрд╕реНрддрдХрдЬреБрди рд╣рд╛рд▓ рд╕рдореНрдкрдиреНрди рднрдИрд░рд╣реЗрдХреЛ рдЫ ред

рдУрдкрди рдмрд┐рд▓реНрдб рд╕реЗрд╡рд╛ (OBS)

рдпреЛ рд╡рд┐рддрд░рдг рдХреЛ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣реЛред рдпрд╕рдХреЛ рдХреЛрдб рдЦреБрд▓рд╛ рдЫ рд░ рднрдгреНрдбрд╛рд░рдорд╛ рдЫ GitHubред рдЙрдкрдХрд░рдгрдХреЛ рд▓реЗрдЦрдХ рдХрдореНрдкрдиреА рд╣реЛ рдиреЛрднреЗрд▓ред рдЙрдирд▓реЗ SuSE рд╡рд┐рддрд░рдгрдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рднрд╛рдЧ рд▓рд┐рдЗрдиреН, рд░ рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓рд╛рдИ рд╕реБрд░реБрдорд╛ openSUSE рдмрд┐рд▓реНрдб рд╕реЗрд╡рд╛ рднрдирд┐рдиреНрдереНрдпреЛред рдпреЛ рдХреБрдиреИ рдЖрд╢реНрдЪрд░реНрдпрдХреЛ рдХреБрд░рд╛ рд╣реЛрдЗрди рдХрд┐ рдУрдкрди рдмрд┐рд▓реНрдб рд╕реЗрд╡рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН OpenSUSE, Tizen рд░ VideoLAN рдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиред рдбреЗрд▓, рдПрд╕рдЬреАрдЖрдИ рд░ рдЗрдВрдЯреЗрд▓рд▓реЗ рдкрдирд┐ рдЙрдкрдХрд░рдгрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫред рддрд░ рдирд┐рдпрдорд┐рдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдмреАрдЪ рддреНрдпрд╣рд╛рдБ рд╕рд╛рдирд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╣рд░реВ рдкрдирд┐ рдЫрдиреНред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рд▓реЗрдЦрдХрд╣рд░реВрд▓реЗ рд╕рдЩреНрдХрд▓рди (рдкреГрд╖реНрда 10) рдкреВрд░реНрд╡ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреНрдпрд╛рдХреЗрдЬред рдкреНрд░рдгрд╛рд▓реА рдЖрдлреИрдВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐: рд╢реБрд▓реНрдХ рдЫ - рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рддреНрд░ рд╣реЛрд╕реНрдЯрд┐рдЩ рд╡рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рд░реНрднрд░рдорд╛ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкреИрд╕рд╛ рдЦрд░реНрдЪ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рддрд░ рдпрд╕рдХреЛ рдЕрд╕реНрддрд┐рддреНрд╡рдорд╛, рдЙрдкрдХрд░рдгрд▓реЗ рдХрд╣рд┐рд▓реНрдпреИ рд╡реНрдпрд╛рдкрдХ рд╕рдореБрджрд╛рдп рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рдЫреИрдиред рдпрджреНрдпрдкрд┐ рдК рдерд┐рдпреЛ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рдЕрдВрд╢, рдЦреБрд▓рд╛ OS рд▓рд╛рдИ рдорд╛рдирдХреАрдХрд░рдг рдЧрд░реНрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ред рдпреЛ рдЧрд╛рд╣реНрд░реЛ рд╣реБрди рд╕рдХреНрдЫ рд╡рд┐рд╖рдпрдЧрдд рдлреЛрд░рдорд╣рд░реВрдорд╛ рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реНред рддрд░ Quora рдирд┐рд╡рд╛рд╕реАрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрд▓реЗ рдиреЛрдЯ рдЧрд░реЗ рдХрд┐ рдорд╛ IRC рдЪреНрдпрд╛рдЯ Freenode рдорд╛, рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рджрд╕реНрдпрд╣рд░реВ рдПрдХрджрдо рд╕рдЬрд┐рд▓реИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреНрдЫрдиреНред рд╕рд╛рдиреЛ рд╕рдореБрджрд╛рдпрдХреЛ рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╣реЛрдЗрди, рдХрд┐рдирдХрд┐ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рд╕рдорд╛рдзрд╛рди рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╛рдЧрдЬрд╛рддрдорд╛ (PDF рд░ EPUB)ред Ibidред рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ OBS рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЙрддреНрддрдо рдЕрднреНрдпрд╛рд╕рд╣рд░реВ (рддреНрдпрд╣рд╛рдБ рдЙрджрд╛рд╣рд░рдг рд░ рдХреЗрд╕рд╣рд░реВ рдЫрдиреН)ред

рд░реБрдиреНрдбреЗрдХ

рдЙрдкрдХрд░рдг рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН (GitHub), рдЬрд╕рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбреЗрдЯрд╛ рдХреЗрдиреНрджреНрд░ рд░ рдХреНрд▓рд╛рдЙрдбрдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрджрдЫред рдПрдЙрдЯрд╛ рд╡рд┐рд╢реЗрд╖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрднрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫред рд╣рд╛рдореА рднрдиреНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ Rundeck ControlTier рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ "рдЫреЛрд░реА" рд╣реЛред Rundeck 2010 рдорд╛ рдпрд╕рдмрд╛рдЯ рдЕрд▓рдЧ рднрдпреЛ рд░ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреЛ - рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдкрдкреЗрдЯ, рд╢реЗрдл, Git рд░ рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕рдВрдЧ рдПрдХреАрдХрд░рдгред

рдкреНрд░рдгрд╛рд▓реА рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рд╡рд╛рд▓реНрдЯ рдбрд┐рдЬреНрдиреА рдХрдореНрдкрдиреА, SalesForce ╨╕ рдЯрд┐рдХрдЯрдорд╛рд╕реНрдЯрд░ред рддрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрдХрд╛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рдЙрдкрдпреБрдХреНрдд рдЫред рдпреЛ рдХрд┐рдирднрдиреЗ Rundeck Apache v2.0 рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рджрд┐рдЗрдПрдХреЛ рдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдПрдХрджрдо рд╕рдЬрд┐рд▓реЛ рдЫред

рдПрдХ Reddit рдирд┐рд╡рд╛рд╕реА рдЬрд╕рд▓реЗ Rundeck рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрдпреЛ, рднрдиреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рдзреЗрд░реИ рдЬрд╕реЛ рдХрдард┐рдирд╛рдЗрд╣рд░реВ рдЖрдлреИрдВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдпреЛред рдЙрдиреАрд╣рд░реВрд▓реЗ рдЙрдирд▓рд╛рдИ рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдорджреНрджрдд рдЧрд░реЗ рдХрд╛рдЧрдЬрд╛рдд рд░ рдИ-рдкреБрд╕реНрддрдХрд╣рд░реВ, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рддред

рддрдкрд╛рдЗрдБ рдЙрдкрдХрд░рдг рдЕрдирд▓рд╛рдЗрди рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЧрд╛рдЗрдбрд╣рд░реВ рдкрдирд┐ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

GoCD

рдЙрдкрдХрд░рдг рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН (GitHub) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдгред рдпреЛ рдХрдореНрдкрдиреА рджреНрд╡рд╛рд░рд╛ 2007 рдорд╛ рдкреЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛рд╣рд░реВ - рддреНрдпрд╕рдкрдЫрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреНрд░реВрдЬ рднрдирд┐рдиреНрдЫред

GoCD рдЕрдирд▓рд╛рдЗрди рдХрд╛рд░ рдмрд┐рдХреНрд░реА рд╕рд╛рдЗрдЯ AutoTrader, рд╡рдВрд╢рд╛рд╡рд▓реА рд╕реЗрд╡рд╛ рдкреВрд░реНрд╡рдЬ рд░ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдкреНрд░рджрд╛рдпрдХ Barclaycard рдмрд╛рдЯ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдпрджреНрдпрдкрд┐, рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдПрдХ рдЪреМрдерд╛рдИ рд╕рд╛рдиреЛ рд╡реНрдпрд╡рд╕рд╛рдп рдЧрдарди рдЧрд░реНрджрдЫ.

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╣рд░реВ рдмреАрдЪ рд╕реЗрд╡рд╛рдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдпрд╕рдХреЛ рдЦреБрд▓рд╛рдкрди рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ - рдпреЛ Apache v2.0 рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред рдПрдХреИ рд╕рдордпрдорд╛, GoCD рдЫ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╕рдлреНрдЯрд╡реЗрдпрд░рд╕рдБрдЧ рдПрдХреАрдХрд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ - рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рд░ рдХреНрд▓рд╛рдЙрдб рд╕рдорд╛рдзрд╛рдирд╣рд░реВред рд╕рд╛рдБрдЪреЛ рдкреНрд░рдгрд╛рд▓реА рдзреЗрд░реИ рдЬрдЯрд┐рд▓ mastering рдорд╛ - рдпрд╕рдорд╛ рдЕрдкрд░реЗрдЯрд░ рд░ рдЯреЛрд▓реАрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛ рдЫред рд╕рд╛рдереИ, рдХреЗрд╣реА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЦрд░рд╛рдм рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЧреБрдирд╛рд╕реЛ рдЧрд░реНрдЫрдиреН рд░ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдХреЗрд▓рд┐рдВрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдПрдЬреЗрдиреНрдЯрд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ CICD: рддреНрдпрд╣рд╛рдБ рдХреБрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреН рд░ рдХрд┐рди рдареВрд▓рд╛ рд░ рдкреНрд░рд╕рд┐рджреНрдз рдХрдореНрдкрдиреАрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдирдиреН
╨д╨╛╤В╨╛ - рдореНрдпрд╛рдЯ рд╡рд╛рдЗрд▓реНрдбрдмреЛрд░ - рдЕрдирд╕реНрдкреНрд▓рд╛рд╕

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

рдЬреЗрдирдХрд┐рдиреНрд╕

рдЬреЗрдирдХрд┐рдиреНрд╕ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рдкрд░рд┐рдЪрд┐рдд рд░ ╤Б╤З╨╕╤В╨░╨╡╤В╤Б╤П CICD рдХреЛ рдХреНрд╖реЗрддреНрд░рдорд╛ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рдорд╛рдирдХ - рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпреЛ рдмрд┐рдирд╛ рдпреЛ рдЪрдпрди рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреВрд░реНрдг рд╣реБрдиреЗрдЫреИрдиред рдЙрдкрдХрд░рдг 2011 рдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдпреЛ, рдмрдиреНрдиреЗ рдУрд░реЗрдХрд▓рдмрд╛рдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣рдбрд╕рдирдХреЛ рдлреЛрд░реНрдХред

рдЖрдЬ рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрджреИрдЫрдиреН NASA, Nintendo рд░ рдЕрдиреНрдп рдареВрд▓рд╛ рд╕рдВрд╕реНрдерд╛рд╣рд░реВрдорд╛ред рдпрджреНрдпрдкрд┐ рейреж% рднрдиреНрджрд╛ рдмрдвреА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рджрд╕ рд╡реНрдпрдХреНрддрд┐рд╕рдореНрдордХреЛ рд╕рд╛рдирд╛ рдЯреЛрд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЦрд╛рддрд╛ рдЫрдиреНред рдЙрддреНрдкрд╛рджрди рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐рдГрд╢реБрд▓реНрдХ рд░ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрддред рдЬреЗ рд╣реЛрд╕реН, рддрдкрд╛рдИрд▓реЗ рдЬреЗрдирдХрд┐рдиреНрд╕рд▓рд╛рдИ рд╣реЛрд╕реНрдЯ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ - рдпрд╕рд▓рд╛рдИ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрднрд░ рдЪрд╛рд╣рд┐рдиреНрдЫред

рдпрдиреНрддреНрд░рдХреЛ рд╕рдореНрдкреВрд░реНрдг рдЕрд╕реНрддрд┐рддреНрд╡рдорд╛, рдпрд╕рдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдареВрд▓реЛ рд╕рдореБрджрд╛рдп рдЧрдарди рднрдПрдХреЛ рдЫред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рд╕рдЮреНрдЪрд╛рд░ рдЧрд░реНрдЫрдиреН Reddit ╨╕ рдЧреБрдЧрд▓ рд╕рдореВрд╣ред рдЬреЗрдиреНрдХрд┐рдиреНрд╕рдХрд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкрдирд┐ рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ Habr├й рдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдЫрдиреНред рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рдореБрджрд╛рдпрдХреЛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдиреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рд░ рдЬреЗрдирдХрд┐рдиреНрд╕рд╕рдБрдЧ рдХрд╛рдо рд╕реБрд░реБ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╣рд╛рдБ рдЫ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ ╨╕ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдЧрд╛рдЗрдбред рд╣рд╛рдореА рдирд┐рдореНрди рдЧрд╛рдЗрдб рд░ рдкреБрд╕реНрддрдХрд╣рд░реВ рдкрдирд┐ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВ:

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

рдмрд┐рд▓реНрдбрдмреЛрдЯ

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

рдЙрдкрдХрд░рдгрдХрд╛ рд▓реЗрдЦрдХ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░ рдмреНрд░рд╛рдпрди рд╡рд╛рд░реНрдирд░ рдерд┐рдПред рдЖрдЬ рдЙрдиреА рдбреНрдпреБрдЯреАрдорд╛ рдЫрдиреН рдкрд░рд┐рд╡рд░реНрддрди рднрдпреЛ рдмрд┐рд▓реНрдбрдмреЛрдЯ рдирд┐рд░реАрдХреНрд╖рдг рд╕рдорд┐рддрд┐ рдкрд╣рд▓ рд╕рдореВрд╣, рдЬрд╕рдорд╛ рдЫ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

рдмрд┐рд▓реНрдбрдмреЛрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдЬрд╕реНрддреИ LLVM, MariaDB, Blender рд░ Dr.Webред рддрд░ рдпреЛ wxWidgets рд░ Flathub рдЬрд╕реНрддрд╛ рд╕рд╛рдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рд╕рдмреИ рдЖрдзреБрдирд┐рдХ VCS рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╡рд░реНрдгрди рдЧрд░реНрди Python рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рдЪрд┐рд▓реЛ рдирд┐рд░реНрдорд╛рдг рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЫрдиреНред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреА рд╕рдмреИрд╕рдБрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд░ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рд╣рд░реВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдЫреЛрдЯреЛ рдЫ IBM рдореНрдпрд╛рдиреБрдЕрд▓.

рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддреНрдпреЛ рд╕рдмреИ рд╣реЛрдЗрди DevOps рдЙрдкрдХрд░рдгрд╣рд░реВ рдЬреБрди рд╕рд╛рдирд╛ рд╕рдВрд╕реНрдерд╛рд╣рд░реВ рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╣рд░реВрд▓реЗ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдЫред рдЖрдлреНрдиреЛ рдордирдкрд░реНрдиреЗ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рджрд┐рдиреБрд╣реЛрд╕реН, рд░ рд╣рд╛рдореА рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреМрдВред

рд╣рд╛рдореАрд▓реЗ рдХрд░реНрдкреЛрд░реЗрдЯ рдмреНрд▓рдЧрдорд╛ рдХреЗ рд▓реЗрдЦреНрдЫреМрдВ:

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

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