
рд╣рд╛рдореНрд░рд╛ рдЕрддрд┐рдерд┐, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдЙрдкрдХрд░рдг рдирд┐рд░реНрдорд╛рддрд╛ рдкреНрдпрд╛рдиреНрдерд┐рдпрди, рддреИрдирд╛рддреАрд╣рд░реВ рдХрд╕рд░реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдЫрдиреНред WordPress GitLab CI/CD рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИред
╨Т рдо рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╕рдореНрдмрдиреНрдзрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫреБ, рддреНрдпрд╕реИрд▓реЗ рдо рд╕рдзреИрдВ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрдиреЗ рдирдпрд╛рдБ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЦреЛрдЬрд┐рд░рд╣реЗрдХреЛ рд╣реБрдиреНрдЫреБред WordPress ╨╕ Drupal рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдорд╛ рд╕реНрд╡рдЪрд╛рд▓рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдорд▓рд╛рдИ рдирдпрд╛рдБ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рдВрдпреЛрдЬрди рдЧрд░реЗрд░ рдЕрдЭ рдмрдвреА рджрдХреНрд╖рддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдорди рдкрд░реНрдЫред
рдо рдкреНрд░рд╛рдпрдГ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдПрдХрд▓ рд╕реНрдЯреЗрдЬрд┐рдЩ рд╕рд░реНрднрд░рд╕рдБрдЧ рд╕рдВрдШрд░реНрд╖ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рджреЗрдЦреНрдЫреБред
рдордзреНрдпрд╡рд░реНрддреА рд╕рд░реНрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╡рд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ рдиреЛрдЯрдХреЛ рд╕рд╛рде URL рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреЛ рдкрд╛рд▓реЛрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреБ рднрдиреЗрдХреЛ рдпрд╕реНрддреЛ рдЖрдирдиреНрдж рд╣реЛ: "рдпрд╣рд╛рдБ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рддрд░ рдЕрдЭреИ рдпрд╣рд╛рдБ рдирд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред"
- рдХреВрд▓ рдкреНрдпрд╛рдиреНрдерд┐рдпрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ - рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫ, рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рдЧрдорд╛ Git рд╢рд╛рдЦрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдкреНрд░рддреНрдпреЗрдХ рдорд▓реНрдЯрд┐рдбреЗрдн рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рдЖрдлреНрдиреИ URL рд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЪреБрдкрдЪрд╛рдк рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рдЧреБрдгрд╕реНрддрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рд░ рдПрдХрдЕрд░реНрдХрд╛рдХреЛ рдФрдВрд▓рд╛рд╣рд░реВрдорд╛ рдкрд╛рдЗрд▓рд╛ рдирд░рд╛рдЦреА рдЕрдиреБрдореЛрджрди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред
рддрд░ Pantheon рд╕рдБрдЧ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд╛ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рд░ рддреИрдирд╛рддреА (CI/CD) рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдг рдЫреИрдиред рддрд░ рдпреЛ рдПрдХ рд▓рдЪрд┐рд▓реЛ рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣реЛ рдЬрд╕рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВ рдХреБрдиреИ рдкрдирд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ рдПрдХреАрдХреГрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдореИрд▓реЗ рдпреЛ рдкрдирд┐ рдпрд╛рдж рдЧрд░реЗрдВ рдХрд┐ рдЯреЛрд▓реАрд╣рд░реВрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд╢реНрдЪрд┐рдд рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН, рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд░ рддреИрдирд╛рддреАрдХрд╛ рд▓рд╛рдЧрд┐ рдлрд░рдХред
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рд░ CI/CD рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреНред рдХреЛрдб рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдирд┐рджрд╛рди рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ рд╡рд░рд┐рдкрд░рд┐ рдлрд┐рдбрд▓ рдЧрд░реНрдиреБрдкрд░реНрдЫ рд░ рдЙрдкрдХрд░рдгрд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрдкрд░реНрдЫред
рдорд╛ рддреНрдпрд╣рд╛рдБ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реЗрдЯ рдЫ: рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рдЯрд┐рдХрдЯрд╣рд░реВ, рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрд╣рд░реВ, рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ-рдЗрди-рдХреНрд▓рд╛рд╕ CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рдХрдиреНрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА, рд░ рдпрд╕реНрддреИ рд╕рдмреИред рддрдкрд╛рдИрдХреЛ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрди рдпрддрд┐ рдзреЗрд░реИ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдореИрд▓реЗ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рднреЗрдЯреЗрдХреЛ рдЫреИрдиред
рдорд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рди рдордирдкрд░реНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдореИрд▓реЗ Pantheon рд▓рд╛рдИ GitLab рдорд╛ рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╕рд┐рдХреЗрдВ рддрд╛рдХрд┐ GitLab рдорд╛ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛рдорд╛ рдХрдорд┐рдЯрд╣рд░реВ Pantheon рдорд╛ рдореБрдЦреНрдп рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рддреИрдирд╛рде рд╣реБрдиреНрдЫрдиреНред рд░ GitLab рдорд╛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрд╣рд░реВрд▓реЗ Pantheon рдорд╛ multidev рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдХреЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рд░ рддреИрдирд╛рдд рдЧрд░реНрди рд╕рдХреНрдЫред
рдпрд╕ рдЧрд╛рдЗрдбрдорд╛, рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ GitLab рд░ Pantheon рдмреАрдЪрдХреЛ рдЬрдбрд╛рди рдХрд╕рд░реА рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рд░ рддрдкрд╛рдИрдВрдХреЛ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рд▓рд╛рдИ рдХрд╕рд░реА рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдиреЗрдЫреБред WordPress ╨╕ Drupal.
рдЕрд╡рд╢реНрдп рдкрдирд┐ рд╕рдореНрднрд╡ рдЫ, , рддрд░ рд╣рд╛рдореА рднрд┐рддреНрд░ рдЦреЛрдЬреНрди рдЖрдлреНрдиреЛ рд╣рд╛рддрд▓реЗ рд╕рдмреИ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рднрд╡рд┐рд╖реНрдпрдорд╛ рдпреЛ рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдорд╛рддреНрд░ рд╣реЛрдЗрди рддреИрдирд╛рддреАрдХреЛ рд▓рд╛рдЧрд┐ред
рдкрд░рд┐рдЪрдп
рдпрд╕ рдкреЛрд╖реНрдЯрдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдмреБрдЭреНрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ Pantheon рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯрд▓рд╛рдИ рддреАрди рддрддреНрд╡рд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрджрдЫ: рдХреЛрдб, рдбрд╛рдЯрд╛рдмреЗрд╕, рд░ рдлрд╛рдЗрд▓рд╣рд░реВред
рдХреЛрдбрдорд╛ рдХреЛрд░, рдкреНрд▓рдЧрдЗрди рд░ рдерд┐рдорд╣рд░реВ рдЬрд╕реНрддрд╛ CMS рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред WordPressрдпреА рдлрд╛рдЗрд▓рд╣рд░реВ рдирд┐рдореНрдирдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЫрдиреН , Pantheon рджреНрд╡рд╛рд░рд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ, рдпрд╕рдХреЛ рдорддрд▓рдм рд╣рд╛рдореА Git рд╕рдБрдЧ GitLab рджреЗрдЦрд┐ Pantheon рдорд╛ рдХреЛрдб рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред
Pantheon рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдорд┐рдбрд┐рдпрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реБрдиреН, рддреНрдпреЛ рд╣реЛ, рд╕рд╛рдЗрдЯрдХрд╛ рд▓рд╛рдЧрд┐ рдЫрд╡рд┐рд╣рд░реВред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЕрдкрд▓реЛрдб рд╣реБрдиреНрдЫрдиреН рд░ Git рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрдЫред
, рдмрд╛рд░реЗ рдердк рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН рд╡рд╛ pantheon.io рдорд╛ред
рдЕрдиреБрдорд╛рдирд╣рд░реВ
Pantheon рд░ GitLab рдорд╛ рдореЗрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрдирд┐рдиреНрдЫ pantheon-gitlab-blog-demoрдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реБрдиреБрдкрд░реНрдЫред рд╣рд╛рдореА рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫреМрдВред WordPressрддрд┐рдореА рдкрдирд┐ рд▓рд┐рди рд╕рдХреНрдЫреМред Drupal, рддрд░ рдХреЗрд╣реА рдХреБрд░рд╛рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред
рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреБ рд░ рддрдкрд╛рдИрдВ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ , рддрдкрд╛рдИрдВ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗред
рдПрдЙрдЯрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН
рдкрд╣рд┐рд▓реЗ, рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ (рд╣рд╛рдореА рдпреЛ рдкрдЫрд┐ рдлрд┐рд░реНрддрд╛ рдЖрдЙрдиреЗрдЫреМрдВ)ред
рдЕрд╣рд┐рд▓реЗ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдЫреМрдВред WordPress рд╡реЗрдмрд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдХреЛ рд▓рд╛рдЧрд┐ред
рдпрджрд┐ рддрдкрд╛рдЗрдБрдХрд╛ рд╣рд╛рддрд╣рд░реВ рдХреЗрд╣рд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЦреБрдЬрд▓реА рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реН рд╡рд╛ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдердкреНрдиреБрд╣реЛрд╕реН, рдзреИрд░реНрдп рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕рд╛рдЗрдЯ рдЕрдЭреИ GitLab рдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ рдЫреИрди, рд░ рд╣рд╛рдореА рд╕рдмреИ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ GitLab рдорд╛рд░реНрдлрдд рдЬрд╛рди рдЪрд╛рд╣рдиреНрдЫреМрдВред
рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдХрд╣рд┐рд▓реЗ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ? WordPress, Pantheon рд╡реЗрдмрд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реН рд░ рд╡рд┐рдХрд╛рд╕ рдореЛрдбрд▓рд╛рдИ Git рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
GitLab рдорд╛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛
рдЕрдм рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХреЛрдб рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред WordPress Pantheon рд╡реЗрдмрд╕рд╛рдЗрдЯрдмрд╛рдЯ GitLab рдорд╛ред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА Pantheon рд╡реЗрдмрд╕рд╛рдЗрдЯрдХреЛ Git рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рдХреЛрдбрд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдХреНрд▓реЛрди рдЧрд░реНрдЫреМрдВ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рд▓рд╛рдИ GitLab рднрдгреНрдбрд╛рд░рдорд╛ рдкреБрд╢ рдЧрд░реНрдЫреМрдВред
рдпрд╕рд▓рд╛рдИ рд╕рдЬрд┐рд▓реЛ рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдЙрди, рд░ рд╣рд╛рдореАрд▓реЗ рдкрдиреНрдерд┐рдСрди рдЧрд┐рдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреНрд▓реЛрди рдЧрд░реНрджрд╛ рд╣рд░реЗрдХ рдкрдЯрдХ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрджреИрдиред рдПрдХреИ рд╕рдордпрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ .
рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдорд╛ рдХреНрд▓реЛрди рд╡рд┐рде рдЧрд┐рдЯ рдлрд┐рд▓реНрдбрдмрд╛рдЯ рдЖрджреЗрд╢ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдкреНрдпрд╛рдиреНрдерд┐рдпрди рд╕рд╛рдЗрдЯрд▓рд╛рдИ рдХреНрд▓реЛрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдорджреНрджрдд рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ, рдХрд╛рдЧрдЬрд╛рдд рдкрдвреНрдиреБрд╣реЛрд╕реН .
рдЕрдм рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реМрдВ git remote originPantheon рдХреЛ рд╕рдЯреНрдЯрд╛ GitLab рд▓рд╛рдИ рдФрдВрд▓реНрдпрд╛рдЙрдиред рдпреЛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ .
GitLab рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЬрд╛рдиреБрд╣реЛрд╕реН рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рд╡рд░рдг рдкреГрд╖реНрдардорд╛ рдХреНрд▓реЛрди рдбреНрд░рдкрдбрд╛рдЙрдирдмрд╛рдЯ рднрдгреНрдбрд╛рд░ URL рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реНред SSH рд╡рд┐рдХрд▓реНрдкрдХреЛ рд╕рд╛рде рдХреНрд▓реЛрди рдЫрдиреЛрдЯ рдЧрд░реМрдВ, рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ SSH рдХреБрдЮреНрдЬреА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВред
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд git remote рдХреЛрдб рднрдгреНрдбрд╛рд░рдХреЛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рдХреЛ рд▓рд╛рдЧрд┐ - originред рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЧ git remote set-url origin [URL ╤А╨╡╨┐╨╛╨╖╨╕╤В╨╛╤А╨╕╤П GitLab], рдЬрд╣рд╛рдБ рдХреЛрд╖реНрдардХрдХреЛ рд╕рдЯреНрдЯрд╛ рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рд┐рдХ URL рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдЫреМрдВред
рдЕрдиреНрддрдорд╛, рд╣рд╛рдореА рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ git push origin master --forceрдХреЛрдб рдкрдард╛рдЙрди WordPress GitLab рдорд╛ Pantheon рд╕рд╛рдЗрдЯрдмрд╛рдЯред
рдмрд▓ рд╡рд┐рдХрд▓реНрдк рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХ рдЫред рддреНрдпрд╕рдкрдЫрд┐ рдЯреЛрд▓реАрд╣рд░реВрдорд╛
git pushрдпреЛ GitLab рдорд╛ рд╣реБрдиреЗрдЫреИрдиред
рдкреНрд░рдорд╛рдгрд╣рд░реВ рд░ рдЪрд░рд╣рд░реВ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ
рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ Pantheon рд░ GitLab рдорд╛ рд▓рдЧ рдЗрди рдЧрд░реНрди рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ SSH рдХреБрдЮреНрдЬреА рдХрд╕рд░реА рдердкреНрдпреМрдВ? SSH рдЯреЛрдХрди GitLab рд░ Pantheon рд▓рд╛рдИ рдЕрдзрд┐рдХреГрдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
GitLab рд╕рдБрдЧ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЫрдиреНред рд╣реЗрд░реМрдВ .
рд╣рд╛рдореА рдЕрдм рдкрд╣рд┐рд▓реЛ рджреБрдИ рдЪрд░рдгрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ: ssh-keygen рдорд╛рд░реНрдлрдд рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдПрдЙрдЯрд╛ рдирдпрд╛рдБ SSH рдХреБрдЮреНрдЬреА рдЬреЛрдбреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЪрд░рдХреЛ рд░реВрдкрдорд╛ рдирд┐рдЬреА рдХреБрдЮреНрдЬреА рдердкреМрдВред.
рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╕реЛрдзреНрдиреЗрдЫреМрдВ SSH_PRIVATE_KEY рдХрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдорд╛ред
рддреЗрд╕реНрд░реЛ рд░ рдЪреМрдереЛ рдЪрд░рдгрдорд╛ рд╣рд╛рдореА рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ .gitlab-ci.yml рдпреЛ рдЬрд╕реНрддреИ рд╕рд╛рдордЧреНрд░реА рд╕рдВрдЧ:
before_script:
# See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
- mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
- git config --global user.email "$GITLAB_USER_EMAIL"
- git config --global user.name "Gitlab CI"рдЕрдЭреИ рдлрд╛рдЗрд▓ рдХрдорд┐рдЯ рдирдЧрд░реМрдВ .gitlab-ci.yml, рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рдорд╛ рдХреЗрд╣рд┐ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рдЕрдм рд╣рд╛рдореА рдкрд╛рдБрдЪреМрдВ рдЪрд░рдг рд░ рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдкрд╣реБрдБрдЪ рдЪрд╛рд╣рд┐рдиреЗ рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрднрдПрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреА рдердкреНрдиреБрд╣реЛрд╕реН.
рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА GitLab рдмрд╛рдЯ Pantheon рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рд╣рд╛рдореА Pantheon рдХрд╛рдЧрдЬрд╛рдд рдорд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдпреЛ рдЪрд░рдг рдкреВрд░рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН: рдирд┐рдЬреА SSH GitLab рдорд╛ рдЫ, рдЦреБрд▓рд╛ SSH Pantheon рдорд╛ рдЫред
рдХреЗрд╣реА рдердк рдкрд░рд┐рд╡реЗрд╢ рдЪрд░рд╣рд░реВ рд╕реЗрдЯ рдЕрдк рдЧрд░реМрдВред рдкрд╣рд┐рд▓реЛрд▓рд╛рдИ PANTHEON_SITE рднрдирд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорд╛рди рддрдкрд╛рдИрдХреЛ рдореЗрд╕рд┐рдирдорд╛ рд░рд╣реЗрдХреЛ Pantheon рд╕рд╛рдЗрдЯрдХреЛ рдирд╛рдо рд╣реЛред
рдореЗрд╕рд┐рдирдорд╛ рдирд╛рдо Git рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдХреНрд▓реЛрдирдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рд╕рд╛рдЗрдЯ рдХреНрд▓реЛрди рдЧрд░рд┐рд╕рдХреНрдиреБрднрдПрдХреЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдХреЛ рдирд╛рдо рд╣реБрдиреЗрдЫред
рдЕрд░реНрдХреЛ, рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдЕрдк рдЧрд░реМрдВ PANTHEON_GIT_URLред рдпреЛ Pantheon рд╕рд╛рдЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ Git рднрдгреНрдбрд╛рд░ URL рд╣реЛ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВред
рдмрд┐рдирд╛ SSH рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА URL рдорд╛рддреНрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН
git cloneрд░ рдЕрдиреНрддрдорд╛ рдореЗрд╕рд┐рдирдорд╛ рд╕рд╛рдЗрдЯрдХреЛ рдирд╛рдоред
рдУрдлред рдпреЛ рд╕рдХрд┐рдпреЛ, рдЕрдм рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдлрд╛рдЗрд▓ рд╕рдорд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ .gitlab-ci.yml.
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛рд░реНрдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╣рд╛рдореАрд▓реЗ рд╕реБрд░реБрдорд╛ GitLab CI рд╕рдБрдЧ рдХреЗ рдЧрд░рд┐рд░рд╣рдиреЗрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рд╡рд┐рдЧрддрдорд╛ Git рднрдгреНрдбрд╛рд░рд╣рд░реВрд╕рдБрдЧ рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВред рддрд░ рдпрд╕ рдкрдЯрдХ, рджреЛрд╕реНрд░реЛ рд░рд┐рдореЛрдЯ Git рд╕реНрд░реЛрддрдХреЛ рд░реВрдкрдорд╛ Pantheon рднрдгреНрдбрд╛рд░ рдердкреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ GitLab рдмрд╛рдЯ Pantheon рдорд╛ рдХреЛрдб рдкреБрд╢ рдЧрд░реМрдВред
рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реМрдВ deploy ╨╕ deploy:dev, рдХрд┐рдирднрдиреЗ рд╣рд╛рдореА Pantheon рдорд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рддреИрдирд╛рдд рдЧрд░реНрдиреЗрдЫреМрдВред рдирддрд┐рдЬрд╛ рдлрд╛рдЗрд▓ .gitlab-ci.yml рдпреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
stages:
- deploy
before_script:
# See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
- mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
- git config --global user.email "$GITLAB_USER_EMAIL"
- git config --global user.name "Gitlab CI"
deploy:dev:
stage: deploy
environment:
name: dev
url: https://dev-$PANTHEON_SITE.pantheonsite.io/
script:
- git remote add pantheon $PANTHEON_GIT_URL
- git push pantheon master --force
only:
- masterрдЪрд░рд╣рд░реВ SSH_PRIVATE_KEY, PANTHEON_SITE ╨╕ PANTHEON_GIT_URL рдкрд░рд┐рдЪрд┐рдд рджреЗрдЦрд┐рдиреБ рдкрд░реНрдЫ - рд╣рд╛рдореАрд▓реЗ рдпреА рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрдпреМрдВред рдпреА рдЪрд░рд╣рд░реВрдХреЛ рд╕рд╛рде рд╣рд╛рдореА рдлрд╛рдЗрд▓рдорд╛ рдорд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреМрдВ .gitlab-ci.yml рдзреЗрд░реИ рдкрдЯрдХ, рд░ рддрд┐рдиреАрд╣рд░реВ рдХреЗрд╡рд▓ рдПрдХ рдард╛рдЙрдБрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред
рдЕрдиреНрддрдорд╛, рдердкреНрдиреБрд╣реЛрд╕реН, рдХрдорд┐рдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдлрд╛рдЗрд▓ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН .gitlab-ci.yml GitLab рдорд╛ред
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ
рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рд╕рдмреИ рдХреБрд░рд╛ рд╕рд╣реА рдврдВрдЧрд▓реЗ рдЧрд░реНрдпреМрдВ рднрдиреЗ, рдХрд╛рд░реНрдп deploy:dev GitLab CI/CD рдорд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓реНрдиреЗрдЫ рд░ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкреЗрд╢ рдЧрд░реНрдиреЗрдЫ .gitlab-ci.yml Pantheon рдорд╛ред рд╣реЗрд░реМрдВред
Pantheon рдорд╛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдереНрд░реЗрдбрд╣рд░реВ рдкрдард╛рдЙрдБрджреИ
рдпрд╣рд╛рдБ рд╣рд╛рдореА рдореЗрд░реЛ рдордирдкрд░реНрдиреЗ Pantheon рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ - , рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВ рдорд╛рдЧрдорд╛ Git рд╢рд╛рдЦрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд Pantheon рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдЦрдгреНрдб рдЫреЛрдбреНрди рд╕рдХрд┐рдиреНрдЫред рддрд░ рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкрд╣реБрдБрдЪ рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ GitLab рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдмрд╛рдЯ Pantheon рдорд╛ multidev рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рд┐рд░реНрдЬрдирд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реЗрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдкрд╣рд┐рд▓реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдирдпрд╛рдБ Git рд╢рд╛рдЦрд╛ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН git checkout -b multidev-supportред рдЕрдм рдлреЗрд░рд┐ рдХреЗрд╣рд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реМрдВ .gitlab-ci.yml.
рдо рдкреНрдпрд╛рдиреНрдерд┐рдпрди рд╡рд╛рддрд╛рд╡рд░рдг рдирд╛рдордорд╛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдирдореНрдмрд░ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкрд╣рд┐рд▓реЛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рд╣реЛ mr-1, рджреЛрд╕реНрд░реЛ - mr-2 рдЖрджрд┐
рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ Pantheon рд╢рд╛рдЦрд╛ рдирд╛рдорд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред GitLab рдорд╛ рдпреЛ рд╕рдЬрд┐рд▓реЛ рдЫ - рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ .
рд▓рд┐рди рд╕рдХреНрдЫреМрдВ $CI_MERGE_REQUEST_IIDрдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдирдореНрдмрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиред рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдХрд╛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╡рд╛рддрд╛рд╡рд░рдгреАрдп рдЪрд░рд╣рд░реВрд╕рдБрдЧреИ рдпреЛ рд╕рдмреИ рд▓рд╛рдЧреВ рдЧрд░реМрдВ рд░ рдлрд╛рдЗрд▓рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдирдпрд╛рдБ deploy:multidev рдХрд╛рд░реНрдп рдердкреМрдВред .gitlab-ci.yml.
deploy:multidev:
stage: deploy
environment:
name: multidev/mr-$CI_MERGE_REQUEST_IID
url: https://mr-$CI_MERGE_REQUEST_IID-$PANTHEON_SITE.pantheonsite.io/
script:
# Checkout the merge request source branch
- git checkout $CI_COMMIT_REF_NAME
# Add the Pantheon git repository as an additional remote
- git remote add pantheon $PANTHEON_GIT_URL
# Push the merge request source branch to Pantheon
- git push pantheon $CI_COMMIT_REF_NAME:mr-$CI_MERGE_REQUEST_IID --force
only:
- merge_requestsрдпреЛ рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдп рдЬрд╕реНрддреИ рд╣реБрдиреЗрдЫ deploy:dev, рд╢рд╛рдЦрд╛ рдорд╛рддреНрд░ рдкреНрдпрд╛рдиреНрдерд┐рдпрдирдорд╛ рдкрдард╛рдЗрдиреНрдЫ, рд╣реЛрдЗрди master.
рд╣рд╛рдореАрд▓реЗ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдлрд╛рдЗрд▓ рдердкреЗрдХрд╛ рдЫреМрдВ рд░ рдкреНрд░рддрд┐рдмрджреНрдз рдЧрд░реЗрдХрд╛ рдЫреМрдВ .gitlab-ci.yml, рд░ рдЕрдм GitLab рдорд╛ рдирдпрд╛рдБ рд╢рд╛рдЦрд╛ рдкреБрд╢ рдЧрд░реМрдВ git push -u origin multidev-support.
рдЕрдм рд╢рд╛рдЦрд╛рдмрд╛рдЯ рдирдпрд╛рдБ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ multidev-supportрдХреНрд▓рд┐рдХ рдЧрд░реЗрд░ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН.
рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА CI/CD рдХрд╛рд░реНрдп рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫ рд╣реЗрд░реНрдЫреМрдВ deploy:multidev.
рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рдирдпрд╛рдБ рдереНрд░реЗрдб Pantheon рдорд╛ рдкрдард╛рдЗрдПрдХреЛ рдЫред рддрд░ рдпрджрд┐ рд╣рд╛рдореА Pantheon рд╡реЗрдмрд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдорд╛ рдорд▓реНрдЯрд┐рдбреЗрдн рд╕реЗрдХреНрд╕рдирдорд╛ рдЬрд╛рдиреНрдЫреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рддреНрдпрд╣рд╛рдБ рдирдпрд╛рдБ рд╡рд╛рддрд╛рд╡рд░рдг рджреЗрдЦреНрдиреЗ рдЫреИрдиреМрдВред
Git рд╢рд╛рдЦрд╛рд╣рд░реВ рдЦрдгреНрдб рд╣реЗрд░реМрдВред
рдлрд▓рд╕реНрд╡рд░реВрдк, рд╣рд╛рдореНрд░реЛ рдереНрд░реЗрдб mr-1 Pantheon рдкреБрдЧреНрдпреЛред рд╢рд╛рдЦрд╛рдмрд╛рдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реГрдЬрдирд╛ рдЧрд░реМрдВ mr-1.
рд╣рд╛рдореАрд▓реЗ рдорд▓реНрдЯрд┐рдбреЗрдн рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рдЕрдм GitLab рдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реН рд░ рдЦрдгреНрдбрдорд╛ рд╣реЗрд░реМрдВ рд╕рдЮреНрдЪрд╛рд▓рди > рд╡рд╛рддрд╛рд╡рд░рдгред рд╣рд╛рдореА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рджреЗрдЦреНрдиреЗрдЫреМрдВ dev ╨╕ mr-1.
рдпреЛ рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдердкреЗрдХрд╛ рдЫреМрдВ environment рдирд╛рдо рд╕рдВрдЧ name ╨╕ url CI/CD рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдЦреБрд▓рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдЖрдЗрдХрдирдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдпреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓рд╛рдИ Pantheon рдорд╛ multidev рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ URL рдорд╛ рд▓рдЧрд┐рдиреЗрдЫред
Multidev рдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд
рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рддрдкрд╛рдЗрдБ рдпрд╣рд╛рдБ рд░реЛрдХреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдкреНрд░рддреНрдпреЗрдХ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╣реБрджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН, рддрд░ рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реБрди рд╕рдХреНрдЫред
Pantheon рдорд╛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг рдЫ , рдЬрд╣рд╛рдБ рддрдкрд╛рдЗрдБ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЯрд░реНрдорд┐рдирд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдмрд╛рдЯ рдмрд╣реБрджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ - рдХреЛ рд▓рд╛рдЧреА рдЖрджрд░реНрд╢ .
рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдирдпрд╛рдБ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдЪрд╛рд╣рд┐рдиреНрдЫред рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирдпрд╛рдБ рд╢рд╛рдЦрд╛ рдмрдирд╛рдФрдВ git checkout -b auto-multidev-creation.
GitLab CI/CD рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдЯрд░реНрдорд┐рдирд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЯрд░реНрдорд┐рдирд╕рд╕рдБрдЧ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд╕рд┐рди рдЯреЛрдХрди рд░ рдЯрд░реНрдорд┐рдирд╕рдХреЛ рд╕рд╛рде рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐ рдЪрд╛рд╣рд┐рдиреНрдЫред
, рдпрд╕рд▓рд╛рдИ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рдирдорд╛ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдирд╛рдордХреЛ рд╕рд╛рде GitLab рдорд╛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдХреЛ рд░реВрдкрдорд╛ рдердкреНрдиреБрд╣реЛрд╕реН PANTHEON_MACHINE_TOKEN.
рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ GitLab рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд╣рд░реВ рдердкреНрдиреЗ рддрд░рд┐рдХрд╛ рдмрд┐рд░реНрд╕рдиреБрднрдпреЛ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реЗрдХреЛ рдард╛рдЙрдБрдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реН
PANTHEON_SITE.
рдЯрд░реНрдорд┐рдирд╕рдХреЛ рд╕рд╛рде рдбрдХрд░рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрди рд╡рд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдордирдкрд░реНрджреИрди рднрдиреЗ Dockerfile, рдореЗрд░реЛ рдЫрд╡рд┐ рд▓рд┐рдиреБрд╣реЛрд╕реН registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest рд░ рдпреЛ рдЦрдгреНрдб рдЫреЛрдбреНрдиреБрд╣реЛрд╕реНред
, рдЬрд╣рд╛рдБ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдлрд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рд░ рд░рд╛рдЦреНрди рд╕рдХреНрдЫреМрдВред Pantheon рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди Terminus рд╕рдВрдЧ рдПрдХ Dockerfile рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред
рдЯрд░реНрдорд┐рдирд╕ рдПрдХ PHP рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ PHP рдЫрд╡рд┐рдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реМрдВред рдо рдХрдореНрдкреЛрдЬрд░ рдорд╛рд░реНрдлрдд рдЯрд░реНрдорд┐рдирд╕ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИрдЫреБ, рддреНрдпрд╕реИрд▓реЗ рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреБ ред рд╣рд╛рдореА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ Dockerfile рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реАрдХреЛ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛:
# Use the official Composer image as a parent image
FROM composer:1.8
# Update/upgrade apk
RUN apk update
RUN apk upgrade
# Make the Terminus directory
RUN mkdir -p /usr/local/share/terminus
# Install Terminus 2.x with Composer
RUN /usr/bin/env COMPOSER_BIN_DIR=/usr/local/bin composer -n --working-dir=/usr/local/share/terminus require pantheon-systems/terminus:"^2"рдЦрдгреНрдбрдмрд╛рдЯ рдЫрд╡рд┐рд╣рд░реВ рдЬрдореНрдорд╛ рдЧрд░реНрди рд░ рдкрдард╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЫрд╡рд┐рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рд░ рдкреБрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН ╨▓ рдмрд╛рдЯ рдЫрд╡рд┐ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди Dockerfile рд░ рдпрд╕рд▓рд╛рдИ GitLab рдорд╛ рдкреБрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдЦрдгреНрдб рдЦреЛрд▓реНрджреИ рд░рдЬрд┐рд╕реНрдЯреНрд░реА GitLab рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд╛ред рдпрджрд┐ рд╕рдмреИ рдпреЛрдЬрдирд╛ рдЕрдиреБрд╕рд╛рд░ рднрдпреЛ рднрдиреЗ, рд╣рд╛рдореНрд░реЛ рдЫрд╡рд┐ рддреНрдпрд╣рд╛рдБ рд╣реБрдиреЗрдЫред рдЫрд╡рд┐ рдЯреНрдпрд╛рдЧрдХреЛ рд▓рд┐рдЩреНрдХ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН - рд╣рд╛рдореАрд▓рд╛рдИ рдлрд╛рдЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЪрд╛рд╣рд┐рдиреНрдЫ .gitlab-ci.yml.
рд╕реЗрдХреНрд╕рди script рд╕рдорд╕реНрдпрд╛ рдорд╛ deploy:multidev рдмрдвреНрди рдерд╛рд▓реЗрдХреЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рдлрд╛рдЗрд▓рдорд╛ рд╕рд╛рд░реМрдВред рдирдпрд╛рдБ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН private/multidev-deploy.sh:
#!/bin/bash
# Store the mr- environment name
export PANTHEON_ENV=mr-$CI_MERGE_REQUEST_IID
# Authenticate with Terminus
terminus auth:login --machine-token=$PANTHEON_MACHINE_TOKEN
# Checkout the merge request source branch
git checkout $CI_COMMIT_REF_NAME
# Add the Pantheon Git repository as an additional remote
git remote add pantheon $PANTHEON_GIT_URL
# Push the merge request source branch to Pantheon
git push pantheon $CI_COMMIT_REF_NAME:$PANTHEON_ENV --force
# Create a function for determining if a multidev exists
TERMINUS_DOES_MULTIDEV_EXIST()
{
# Stash a list of Pantheon multidev environments
PANTHEON_MULTIDEV_LIST="$(terminus multidev:list ${PANTHEON_SITE} --format=list --field=id)"
while read -r multiDev; do
if [[ "${multiDev}" == "$1" ]]
then
return 0;
fi
done <<< "$PANTHEON_MULTIDEV_LIST"
return 1;
}
# If the mutltidev doesn't exist
if ! TERMINUS_DOES_MULTIDEV_EXIST $PANTHEON_ENV
then
# Create it with Terminus
echo "No multidev for $PANTHEON_ENV found, creating one..."
terminus multidev:create $PANTHEON_SITE.dev $PANTHEON_ENV
else
echo "The multidev $PANTHEON_ENV already exists, skipping creating it..."
fiрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдЬреА рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЫ рд░ ред рд╣рд╛рдореАрд╕рдБрдЧ рд╣рд╛рдореНрд░реЛ рдмрд╣реБрджреЗрд╡ рддрд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЫред рдЕрдм рдЦрдгреНрдб рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реМрдВ deploy:multidev рдлрд╛рдЗрд▓ .gitlab-ci.ymlрддрд╛рдХрд┐ рдпреЛ рдпреЛ рдЬрд╕реНрддреИ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ:
deploy:multidev:
stage: deploy
environment:
name: multidev/mr-$CI_MERGE_REQUEST_IID
url: https://mr-$CI_MERGE_REQUEST_IID-$PANTHEON_SITE.pantheonsite.io/
script:
# Run the multidev deploy script
- "/bin/bash ./private/multidev-deploy.sh"
only:
- merge_requestsрд╣рд╛рдореАрд▓реЗ рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрдХреВрд▓рди рдЫрд╡рд┐рдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдкрд░рд┐рднрд╛рд╖рд╛ рдердкреМрдВ image рд░рдЬрд┐рд╕реНрдЯреНрд░реА URL рджреЗрдЦрд┐ .gitlab-ci.ymlред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд▓реЗ рдпрд╕реНрддреЛ рдлрд╛рдЗрд▓рдХреЛ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдЧрд░реНрдпреМрдВ .gitlab-ci.yml:
image: registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest
stages:
- deploy
before_script:
# See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
- mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
- git config --global user.email "$GITLAB_USER_EMAIL"
- git config --global user.name "Gitlab CI"
deploy:dev:
stage: deploy
environment:
name: dev
url: https://dev-$PANTHEON_SITE.pantheonsite.io/
script:
- git remote add pantheon $PANTHEON_GIT_URL
- git push pantheon master --force
only:
- master
deploy:multidev:
stage: deploy
environment:
name: multidev/mr-$CI_MERGE_REQUEST_IID
url: https://mr-$CI_MERGE_REQUEST_IID-$PANTHEON_SITE.pantheonsite.io/
script:
# Run the multidev deploy script
- "/bin/bash ./private/multidev-deploy.sh"
only:
- merge_requestsрдердкреНрдиреБрд╣реЛрд╕реН, рдкреНрд░рддрд┐рдмрджреНрдз рд░ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН private/multidev-deploy.sh ╨╕ .gitlab-ci.ymlред рдЕрдм рд╣рд╛рдореА GitLab рдорд╛ рдлрд░реНрдХрдиреНрдЫреМрдВ рд░ CI/CD рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫреМрдВред рдзреИрд░реНрдп рдЧрд░реНрдиреБрд╣реЛрд╕реН: multidev рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдзреЗрд░реИ рдорд┐рдиреЗрдЯ рд▓рд╛рдЧреНрди рд╕рдХреНрдЫред
рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА Pantheon рдорд╛ multidev рд╕реВрдЪреА рд╣реЗрд░реНрди рдЬрд╛рдиреНрдЫреМрдВред рдП рдЪрдорддреНрдХрд╛рд░ ! рдмрд╣реБрджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг mr-2 рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╣рд╛рдБред
рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛
рд╣рд╛рдореАрд▓реЗ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЦреЛрд▓реНрди рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдерд╛рд▓реЗрдкрдЫрд┐ рдореЗрд░реЛ рдЯреЛрд▓реАрд▓реЗ рдзреЗрд░реИ рд░рдорд╛рдЗрд▓реЛ рдЧрд░реНтАНрдпреЛред
GitLab рд░ Pantheon рдХреЛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдгрд╣рд░реБ рд╕рдВрдЧ, рддрдкрд╛рдИрд▓реЗ GitLab рд▓рд╛рдИ Pantheon рдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рд╣рд╛рдореАрд▓реЗ GitLab CI/CD рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рд╣реБрдирд╛рд▓реЗ, рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдмрдвреНрдиреЗ рдард╛рдЙрдБ рд╣реБрдиреЗрдЫред рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╕реБрд░реБ рдЧрд░реНрди рдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдЫрдиреН:
- рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдердкреНрдиреБрд╣реЛрд╕реНред
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдердкреНрдиреБрд╣реЛрд╕реНред
- рдХреЛрдб рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рдкреВрд░рд╛ рднрдПрдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдПрдЙрдЯрд╛ рдХрд╛рд░реНрдп рдердкреНрдиреБрд╣реЛрд╕реНред
- рдердкреНрдиреБрд╣реЛрд╕реН .
GitLab, Pantheon рд░ рд╕реНрд╡рдЪрд╛рд▓рди рдмрд╛рд░реЗ рддрдкрд╛рдИ рдХреЗ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рджрд┐рдиреБрд╣реЛрд╕реНред
PS рдХреЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдЯрд░реНрдорд┐рдирд╕, рдкреНрдпрд╛рдиреНрдерд┐рдпрдирдХреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг, ?
Pantheon рдорд╛ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╕рдВрд╕реНрдХрд░рдг 2 рдорд╛ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реЗрдХрд╛ рдЫреМрдВ GitLab рд╕рдорд░реНрдерди рд╕рдВрдЧред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдкрд░реЗрд╢рд╛рди рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди рднрдиреЗ, рдпреЛ рдкреНрд▓рдЧрдЗрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╣рд╛рдореАрд▓рд╛рдИ v2 рдмрд┐рдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЯрд░реНрдорд┐рдирд╕ рдЯреЛрд▓реАрдХреЛ рд▓рд╛рдЧрд┐ build:project:create рддрдкрд╛рдИрд▓рд╛рдИ рдкреНрдпрд╛рдиреНрдерд┐рдпрди рдЯреЛрдХрди рд░ GitLab рдЯреЛрдХрди рдорд╛рддреНрд░ рдЪрд╛рд╣рд┐рдиреНрдЫред рдЙрдирд▓реЗ рдХрдореНрдкреЛрдЬрд░ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгрдХреЛ рд╕рд╛рде рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рддреИрдирд╛рдд рдЧрд░реНрдиреЗрдЫрд┐рдиреН, GitLab рдорд╛ рдирдпрд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ, рдирдпрд╛рдБ Pantheon рд╕рд╛рдЗрдЯ, рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд░ SSH рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрдбрд╛рди рдЧрд░реНрдиреЗрдЫред
рд▓реЗрдЦрдХрдХреЛ рдмрд╛рд░реЗрдорд╛
рдПрдиреНрдбреНрд░рдпреВ рдЯреЗрд▓рд░рд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ .
рд╕реНрд░реЛрдд: www.habr.com
