GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ
Pantheon рдорд╛ рд╣рд╛рдореНрд░реЛ рдЕрддрд┐рдерд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдЙрдкрдХрд░рдг рдирд┐рд░реНрдорд╛рддрд╛ GitLab CI/CD рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ WordPress рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯрд╣рд░реВ рдХрд╕рд░реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдЫред

╨Т Pantheon рдо рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╕рдореНрдмрдиреНрдзрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫреБ, рддреНрдпрд╕реИрд▓реЗ рдо рд╕рдзреИрдВ WordPress рд░ Drupal рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдорд╛ рд╕реНрд╡рдЪрд╛рд▓рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗ рдирдпрд╛рдБ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЦреЛрдЬреНрдЫреБред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдо рдирдпрд╛рдБ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рдПрдХ рдЕрд░реНрдХрд╛рд╕рдБрдЧ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рдо рдкреНрд░рд╛рдпрдГ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдПрдХрд▓ рд╕реНрдЯреЗрдЬрд┐рдЩ рд╕рд░реНрднрд░рд╕рдБрдЧ рд╕рдВрдШрд░реНрд╖ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рджреЗрдЦреНрдЫреБред

рдордзреНрдпрд╡рд░реНрддреА рд╕рд░реНрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╡рд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ рдиреЛрдЯрдХреЛ рд╕рд╛рде URL рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреЛ рдкрд╛рд▓реЛрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреБ рднрдиреЗрдХреЛ рдпрд╕реНрддреЛ рдЖрдирдиреНрдж рд╣реЛ: "рдпрд╣рд╛рдБ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рддрд░ рдЕрдЭреИ рдпрд╣рд╛рдБ рдирд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред"

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

рддрд░ Pantheon рд╕рдБрдЧ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд╛ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рд░ рддреИрдирд╛рддреА (CI/CD) рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдг рдЫреИрдиред рддрд░ рдпреЛ рдПрдХ рд▓рдЪрд┐рд▓реЛ рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣реЛ рдЬрд╕рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВ рдХреБрдиреИ рдкрдирд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ рдПрдХреАрдХреГрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдореИрд▓реЗ рдпреЛ рдкрдирд┐ рдпрд╛рдж рдЧрд░реЗрдВ рдХрд┐ рдЯреЛрд▓реАрд╣рд░реВрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд╢реНрдЪрд┐рдд рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН, рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд░ рддреИрдирд╛рддреАрдХрд╛ рд▓рд╛рдЧрд┐ рдлрд░рдХред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рд░ CI/CD рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреНред рдХреЛрдб рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдирд┐рджрд╛рди рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ рд╡рд░рд┐рдкрд░рд┐ рдлрд┐рдбрд▓ рдЧрд░реНрдиреБрдкрд░реНрдЫ рд░ рдЙрдкрдХрд░рдгрд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдорд╛ GitLab рддреНрдпрд╣рд╛рдБ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реЗрдЯ рдЫ: рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рдЯрд┐рдХрдЯрд╣рд░реВ, рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрд╣рд░реВ, рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ-рдЗрди-рдХреНрд▓рд╛рд╕ CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рдХрдиреНрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА, рд░ рдпрд╕реНрддреИ рд╕рдмреИред рддрдкрд╛рдИрдХреЛ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрди рдпрддрд┐ рдзреЗрд░реИ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдореИрд▓реЗ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рднреЗрдЯреЗрдХреЛ рдЫреИрдиред

рдорд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рди рдордирдкрд░реНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдореИрд▓реЗ Pantheon рд▓рд╛рдИ GitLab рдорд╛ рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╕рд┐рдХреЗрдВ рддрд╛рдХрд┐ GitLab рдорд╛ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛рдорд╛ рдХрдорд┐рдЯрд╣рд░реВ Pantheon рдорд╛ рдореБрдЦреНрдп рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рддреИрдирд╛рде рд╣реБрдиреНрдЫрдиреНред рд░ GitLab рдорд╛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрд╣рд░реВрд▓реЗ Pantheon рдорд╛ multidev рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдХреЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рд░ рддреИрдирд╛рдд рдЧрд░реНрди рд╕рдХреНрдЫред

рдпрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдорд╛, рдо рддрдкрд╛рдЗрдБрд▓рд╛рдИ GitLab рд░ Pantheon рдмреАрдЪрдХреЛ рдЬрдбрд╛рди рдХрд╕рд░реА рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рд░ рддрдкрд╛рдЗрдБрдХреЛ WordPress рд░ Drupal рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдиреЗрдЫреБред

рдЕрд╡рд╢реНрдп рдкрдирд┐ рд╕рдореНрднрд╡ рдЫ, рдорд┐рд░рд░ GitLab рднрдгреНрдбрд╛рд░, рддрд░ рд╣рд╛рдореА рднрд┐рддреНрд░ рдЦреЛрдЬреНрди рдЖрдлреНрдиреЛ рд╣рд╛рддрд▓реЗ рд╕рдмреИ рдЧрд░реНрдиреЗрдЫреМрдВ GitLab рд╕реАрдЖрдИ рд░ рднрд╡рд┐рд╖реНрдпрдорд╛ рдпреЛ рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдорд╛рддреНрд░ рд╣реЛрдЗрди рддреИрдирд╛рддреАрдХреЛ рд▓рд╛рдЧрд┐ред

рдкрд░рд┐рдЪрдп

рдпрд╕ рдкреЛрд╖реНрдЯрдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдмреБрдЭреНрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ Pantheon рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯрд▓рд╛рдИ рддреАрди рддрддреНрд╡рд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрджрдЫ: рдХреЛрдб, рдбрд╛рдЯрд╛рдмреЗрд╕, рд░ рдлрд╛рдЗрд▓рд╣рд░реВред

рдХреЛрдбрд▓реЗ CMS рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ рдЬрд╕реНрддреИ WordPress рдХреЛрд░, рдкреНрд▓рдЧрдЗрдирд╣рд░реВ, рд░ рд╡рд┐рд╖рдпрд╡рд╕реНрддреБрд╣рд░реВред рдпреА рдлрд╛рдЗрд▓рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЫрдиреН Git рднрдгреНрдбрд╛рд░рд╣рд░реВ, Pantheon рджреНрд╡рд╛рд░рд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ, рдпрд╕рдХреЛ рдорддрд▓рдм рд╣рд╛рдореА Git рд╕рдБрдЧ GitLab рджреЗрдЦрд┐ Pantheon рдорд╛ рдХреЛрдб рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред
Pantheon рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдорд┐рдбрд┐рдпрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реБрдиреН, рддреНрдпреЛ рд╣реЛ, рд╕рд╛рдЗрдЯрдХрд╛ рд▓рд╛рдЧрд┐ рдЫрд╡рд┐рд╣рд░реВред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЕрдкрд▓реЛрдб рд╣реБрдиреНрдЫрдиреН рд░ Git рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрдЫред

рдирд┐: рд╢реБрд▓реНрдХ рдЦрд╛рддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдмрд╛рд░реЗ рдердк рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН Pantheon рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд╡рд╛ рдбреЗрдореЛрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдЗрди рдЕрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН pantheon.io рдорд╛ред

рдЕрдиреБрдорд╛рдирд╣рд░реВ

Pantheon рд░ GitLab рдорд╛ рдореЗрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрдирд┐рдиреНрдЫ pantheon-gitlab-blog-demoред рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реБрдиреБрдкрд░реНрдЫред рдпрд╣рд╛рдБ рд╣рд╛рдореА WordPress рд╕рд╛рдЗрдЯ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫреМрдВред рддрдкрд╛рдИрдВ Drupal рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдХреЗрд╣реА рдЪреАрдЬрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред

рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреБ Git рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирд░ рддрдкрд╛рдИрдВ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдиреНрдЯрд░рдлреЗрд╕, рддрдкрд╛рдИрдВ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗред

рдПрдЙрдЯрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН

рдкрд╣рд┐рд▓реЗ, рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ GitLab рдкрд░рд┐рдпреЛрдЬрдирд╛ (рд╣рд╛рдореА рдпреЛ рдкрдЫрд┐ рдлрд┐рд░реНрддрд╛ рдЖрдЙрдиреЗрдЫреМрдВ)ред

рдЕрд╣рд┐рд▓реЗ Pantheon рдорд╛ WordPress рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдХреЛ рд▓рд╛рдЧрд┐ WordPress рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдЫреМрдВред

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

рдПрдХрдкрдЯрдХ рд╣рд╛рдореАрд▓реЗ WordPress рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐, Pantheon рд╡реЗрдмрд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реН рд░ рд╡рд┐рдХрд╛рд╕ рдореЛрдбрд▓рд╛рдИ Git рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

GitLab рдорд╛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛

рдЕрдм рддрдкрд╛рдИрд▓реЗ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ WordPress рдХреЛрдб Pantheon рд╕рд╛рдЗрдЯрдмрд╛рдЯ GitLab рдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ Pantheon рд╕рд╛рдЗрдЯрдХреЛ Git рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рдХреЛрдб рдХреНрд▓реЛрди рдЧрд░реНрдЫреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ GitLab рднрдгреНрдбрд╛рд░рдорд╛ рдкрдард╛рдЙрдБрдЫреМрдВред

рдпрд╕рд▓рд╛рдИ рд╕рдЬрд┐рд▓реЛ рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдЙрди, Pantheon рдорд╛ SSH рдХреБрдЮреНрдЬреА рдердкреНрдиреБрд╣реЛрд╕реН рд░ рд╣рд╛рдореАрд▓реЗ рдкрдиреНрдерд┐рдСрди рдЧрд┐рдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреНрд▓реЛрди рдЧрд░реНрджрд╛ рд╣рд░реЗрдХ рдкрдЯрдХ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрджреИрдиред рдПрдХреИ рд╕рдордпрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ GitLab рдорд╛ SSH рдХреБрдЮреНрдЬреА рдердкреНрдиреБрд╣реЛрд╕реН.

рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдорд╛ рдХреНрд▓реЛрди рд╡рд┐рде рдЧрд┐рдЯ рдлрд┐рд▓реНрдбрдмрд╛рдЯ рдЖрджреЗрд╢ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдкреНрдпрд╛рдиреНрдерд┐рдпрди рд╕рд╛рдЗрдЯрд▓рд╛рдИ рдХреНрд▓реЛрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ
рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдорджреНрджрдд рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ, рдХрд╛рдЧрдЬрд╛рдд рдкрдвреНрдиреБрд╣реЛрд╕реН Git for Pantheon рдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реНрджреИ.

рдЕрдм рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реМрдВ git remote originPantheon рдХреЛ рд╕рдЯреНрдЯрд╛ GitLab рд▓рд╛рдИ рдФрдВрд▓реНрдпрд╛рдЙрдиред рдпреЛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ ╨║╨╛╨╝╨░╨╜╨┤╨╛╨╣ git remote.

GitLab рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЬрд╛рдиреБрд╣реЛрд╕реН рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рд╡рд░рдг рдкреГрд╖реНрдардорд╛ рдХреНрд▓реЛрди рдбреНрд░рдкрдбрд╛рдЙрдирдмрд╛рдЯ рднрдгреНрдбрд╛рд░ URL рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реНред SSH рд╡рд┐рдХрд▓реНрдкрдХреЛ рд╕рд╛рде рдХреНрд▓реЛрди рдЫрдиреЛрдЯ рдЧрд░реМрдВ, рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ SSH рдХреБрдЮреНрдЬреА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВред

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд git remote рдХреЛрдб рднрдгреНрдбрд╛рд░рдХреЛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рдХреЛ рд▓рд╛рдЧрд┐ - originред рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЧ git remote set-url origin [URL ╤А╨╡╨┐╨╛╨╖╨╕╤В╨╛╤А╨╕╤П GitLab], рдЬрд╣рд╛рдБ рдХреЛрд╖реНрдардХрдХреЛ рд╕рдЯреНрдЯрд╛ рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рд┐рдХ URL рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдЫреМрдВред

рдЕрдиреНрддрдорд╛, рд╣рд╛рдореА рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ git push origin master --forcePantheon рдмрд╛рдЯ GitLab рдорд╛ WordPress рдХреЛрдб рдкреБрд╢ рдЧрд░реНрдиред

рдмрд▓ рд╡рд┐рдХрд▓реНрдк рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХ рдЫред рддреНрдпрд╕рдкрдЫрд┐ рдЯреЛрд▓реАрд╣рд░реВрдорд╛ git push рдпреЛ GitLab рдорд╛ рд╣реБрдиреЗрдЫреИрдиред

рдкреНрд░рдорд╛рдгрд╣рд░реВ рд░ рдЪрд░рд╣рд░реВ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ

рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ Pantheon рд░ GitLab рдорд╛ рд▓рдЧ рдЗрди рдЧрд░реНрди рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ SSH рдХреБрдЮреНрдЬреА рдХрд╕рд░реА рдердкреНрдпреМрдВ? SSH рдЯреЛрдХрди GitLab рд░ Pantheon рд▓рд╛рдИ рдЕрдзрд┐рдХреГрдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

GitLab рд╕рдБрдЧ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЫрдиреНред рд╣реЗрд░реМрдВ GitLab CI/CD рд╕рдБрдЧ SSH рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдбрдХрд░ рдПрдХреНрдЬрд┐рдХреНрдпреБрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ SSH рдХреБрдЮреНрдЬреАрд╣рд░реВрдорд╛ рдЦрдгреНрдб.

рд╣рд╛рдореА рдЕрдм рдкрд╣рд┐рд▓реЛ рджреБрдИ рдЪрд░рдгрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ: ssh-keygen рдорд╛рд░реНрдлрдд рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдПрдЙрдЯрд╛ рдирдпрд╛рдБ SSH рдХреБрдЮреНрдЬреА рдЬреЛрдбреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЪрд░рдХреЛ рд░реВрдкрдорд╛ рдирд┐рдЬреА рдХреБрдЮреНрдЬреА рдердкреМрдВред.

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╕реЛрдзреНрдиреЗрдЫреМрдВ SSH_PRIVATE_KEY рдХрд╕рд░реА GitLab CI/CD рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдорд╛ред
рддреЗрд╕реНрд░реЛ рд░ рдЪреМрдереЛ рдЪрд░рдгрдорд╛ рд╣рд╛рдореА рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ .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 рдХрд╛рдЧрдЬрд╛рдд рдорд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН Pantheon рдорд╛ SSH рдХреБрдЮреНрдЬреА рдердкреНрджреИ рд░ рдпреЛ рдЪрд░рдг рдкреВрд░рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН: рдирд┐рдЬреА SSH GitLab рдорд╛ рдЫ, рдЦреБрд▓рд╛ SSH Pantheon рдорд╛ рдЫред

рдХреЗрд╣реА рдердк рдкрд░рд┐рд╡реЗрд╢ рдЪрд░рд╣рд░реВ рд╕реЗрдЯ рдЕрдк рдЧрд░реМрдВред рдкрд╣рд┐рд▓реЛрд▓рд╛рдИ PANTHEON_SITE рднрдирд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорд╛рди рддрдкрд╛рдИрдХреЛ рдореЗрд╕рд┐рдирдорд╛ рд░рд╣реЗрдХреЛ Pantheon рд╕рд╛рдЗрдЯрдХреЛ рдирд╛рдо рд╣реЛред

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

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рдЕрд░реНрдХреЛ, рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдЕрдк рдЧрд░реМрдВ 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 рдорд╛ред рд╣реЗрд░реМрдВред

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

Pantheon рдорд╛ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдереНрд░реЗрдбрд╣рд░реВ рдкрдард╛рдЙрдБрджреИ

рдпрд╣рд╛рдБ рд╣рд╛рдореА рдореЗрд░реЛ рдордирдкрд░реНрдиреЗ Pantheon рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ - multidev, рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВ рдорд╛рдЧрдорд╛ Git рд╢рд╛рдЦрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд Pantheon рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

Multidev рдорд╛ рдкрд╣реБрдБрдЪ рд╕реАрдорд┐рдд рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдЦрдгреНрдб рдЫреЛрдбреНрди рд╕рдХрд┐рдиреНрдЫред рддрд░ рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкрд╣реБрдБрдЪ рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ 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рдХреНрд▓рд┐рдХ рдЧрд░реЗрд░ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН.

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА CI/CD рдХрд╛рд░реНрдп рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫ рд╣реЗрд░реНрдЫреМрдВ deploy:multidev.

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рдирдпрд╛рдБ рдереНрд░реЗрдб Pantheon рдорд╛ рдкрдард╛рдЗрдПрдХреЛ рдЫред рддрд░ рдпрджрд┐ рд╣рд╛рдореА Pantheon рд╡реЗрдмрд╕рд╛рдЗрдЯ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрдорд╛ рдорд▓реНрдЯрд┐рдбреЗрдн рд╕реЗрдХреНрд╕рдирдорд╛ рдЬрд╛рдиреНрдЫреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рддреНрдпрд╣рд╛рдБ рдирдпрд╛рдБ рд╡рд╛рддрд╛рд╡рд░рдг рджреЗрдЦреНрдиреЗ рдЫреИрдиреМрдВред

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

Git рд╢рд╛рдЦрд╛рд╣рд░реВ рдЦрдгреНрдб рд╣реЗрд░реМрдВред

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рдлрд▓рд╕реНрд╡рд░реВрдк, рд╣рд╛рдореНрд░реЛ рдереНрд░реЗрдб mr-1 Pantheon рдкреБрдЧреНрдпреЛред рд╢рд╛рдЦрд╛рдмрд╛рдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реГрдЬрдирд╛ рдЧрд░реМрдВ mr-1.

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рд╣рд╛рдореАрд▓реЗ рдорд▓реНрдЯрд┐рдбреЗрдн рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рдЕрдм GitLab рдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реН рд░ рдЦрдгреНрдбрдорд╛ рд╣реЗрд░реМрдВ рд╕рдЮреНрдЪрд╛рд▓рди > рд╡рд╛рддрд╛рд╡рд░рдгред рд╣рд╛рдореА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рджреЗрдЦреНрдиреЗрдЫреМрдВ dev ╨╕ mr-1.

рдпреЛ рдХрд┐рдирднрдиреЗ рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдердкреЗрдХрд╛ рдЫреМрдВ environment рдирд╛рдо рд╕рдВрдЧ name ╨╕ url CI/CD рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдЦреБрд▓рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдЖрдЗрдХрдирдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдпреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓рд╛рдИ Pantheon рдорд╛ multidev рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ URL рдорд╛ рд▓рдЧрд┐рдиреЗрдЫред

Multidev рдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рддрдкрд╛рдЗрдБ рдпрд╣рд╛рдБ рд░реЛрдХреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдкреНрд░рддреНрдпреЗрдХ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╣реБрджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН, рддрд░ рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реБрди рд╕рдХреНрдЫред

Pantheon рдорд╛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг рдЫ рдЯрд░реНрдорд┐рдирд╕, рдЬрд╣рд╛рдБ рддрдкрд╛рдЗрдБ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЯрд░реНрдорд┐рдирд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдмрд╛рдЯ рдмрд╣реБрджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ - рдХреЛ рд▓рд╛рдЧреА рдЖрджрд░реНрд╢ GitLab рд╕реАрдЖрдИ.

рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдирдпрд╛рдБ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдЪрд╛рд╣рд┐рдиреНрдЫред рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирдпрд╛рдБ рд╢рд╛рдЦрд╛ рдмрдирд╛рдФрдВ git checkout -b auto-multidev-creation.

GitLab CI/CD рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдЯрд░реНрдорд┐рдирд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЯрд░реНрдорд┐рдирд╕рд╕рдБрдЧ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд╕рд┐рди рдЯреЛрдХрди рд░ рдЯрд░реНрдорд┐рдирд╕рдХреЛ рд╕рд╛рде рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐ рдЪрд╛рд╣рд┐рдиреНрдЫред

Pantheon рдореЗрд╢рд┐рди рдЯреЛрдХрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ, рдпрд╕рд▓рд╛рдИ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рдирдорд╛ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдирд╛рдордХреЛ рд╕рд╛рде GitLab рдорд╛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдХреЛ рд░реВрдкрдорд╛ рдердкреНрдиреБрд╣реЛрд╕реН PANTHEON_MACHINE_TOKEN.

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ GitLab рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд╣рд░реВ рдердкреНрдиреЗ рддрд░рд┐рдХрд╛ рдмрд┐рд░реНрд╕рдиреБрднрдпреЛ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реЗрдХреЛ рдард╛рдЙрдБрдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реН PANTHEON_SITE.

рдЯрд░реНрдорд┐рдирд╕рдХреЛ рд╕рд╛рде рдбрдХрд░рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрди рд╡рд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдордирдкрд░реНрджреИрди рднрдиреЗ Dockerfile, рдореЗрд░реЛ рдЫрд╡рд┐ рд▓рд┐рдиреБрд╣реЛрд╕реН registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest рд░ рдпреЛ рдЦрдгреНрдб рдЫреЛрдбреНрдиреБрд╣реЛрд╕реНред

GitLab рд╕рдБрдЧ рдХрдиреНрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЫ, рдЬрд╣рд╛рдБ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдлрд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рд░ рд░рд╛рдЦреНрди рд╕рдХреНрдЫреМрдВред 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.

GitLab рд░ Pantheon рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рд╕реЗрдХреНрд╕рди 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

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдЬреА рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЫ рд░ Pantheon рдорд╛ рд╡реЗрдм рдкрд╣реБрдБрдЪ рдЕрдиреБрдорддрд┐ рджрд┐рджреИрдиред рд╣рд╛рдореАрд╕рдБрдЧ рд╣рд╛рдореНрд░реЛ рдмрд╣реБрджреЗрд╡ рддрд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЫред рдЕрдм рдЦрдгреНрдб рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реМрдВ 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 рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ Drupal рд░ WordPress Workflows рд▓рд╛рдИ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдиреЗ

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рд╣рд╛рдореАрд▓реЗ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЦреЛрд▓реНрди рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдерд╛рд▓реЗрдкрдЫрд┐ рдореЗрд░реЛ рдЯреЛрд▓реАрд▓реЗ рдзреЗрд░реИ рд░рдорд╛рдЗрд▓реЛ рдЧрд░реНтАНрдпреЛред

GitLab рд░ Pantheon рдХреЛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдгрд╣рд░реБ рд╕рдВрдЧ, рддрдкрд╛рдИрд▓реЗ GitLab рд▓рд╛рдИ Pantheon рдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╣рд╛рдореАрд▓реЗ GitLab CI/CD рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рд╣реБрдирд╛рд▓реЗ, рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдмрдвреНрдиреЗ рдард╛рдЙрдБ рд╣реБрдиреЗрдЫред рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╕реБрд░реБ рдЧрд░реНрди рдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдЫрдиреН:

  • рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдердкреНрдиреБрд╣реЛрд╕реНред
  • рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдердкреНрдиреБрд╣реЛрд╕реНред
  • рдХреЛрдб рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рдкреВрд░рд╛ рднрдПрдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдПрдЙрдЯрд╛ рдХрд╛рд░реНрдп рдердкреНрдиреБрд╣реЛрд╕реНред
  • рдердкреНрдиреБрд╣реЛрд╕реН рдЧрддрд┐рд╢реАрд▓ рдЖрд╡реЗрджрди рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг.

GitLab, Pantheon рд░ рд╕реНрд╡рдЪрд╛рд▓рди рдмрд╛рд░реЗ рддрдкрд╛рдИ рдХреЗ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рджрд┐рдиреБрд╣реЛрд╕реНред

PS рдХреЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдЯрд░реНрдорд┐рдирд╕, рдкреНрдпрд╛рдиреНрдерд┐рдпрдирдХреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг, рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдорд╛рд░реНрдлрдд рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?

Pantheon рдорд╛ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╕рдВрд╕реНрдХрд░рдг 2 рдорд╛ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реЗрдХрд╛ рдЫреМрдВ рдЯрд░реНрдорд┐рдирд╕ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд▓рдЧрдЗрди GitLab рд╕рдорд░реНрдерди рд╕рдВрдЧред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдкрд░реЗрд╢рд╛рди рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди рднрдиреЗ, рдпреЛ рдкреНрд▓рдЧрдЗрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╣рд╛рдореАрд▓рд╛рдИ v2 рдмрд┐рдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЯрд░реНрдорд┐рдирд╕ рдЯреЛрд▓реАрдХреЛ рд▓рд╛рдЧрд┐ build:project:create рддрдкрд╛рдИрд▓рд╛рдИ рдкреНрдпрд╛рдиреНрдерд┐рдпрди рдЯреЛрдХрди рд░ GitLab рдЯреЛрдХрди рдорд╛рддреНрд░ рдЪрд╛рд╣рд┐рдиреНрдЫред рдЙрдирд▓реЗ рдХрдореНрдкреЛрдЬрд░ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгрдХреЛ рд╕рд╛рде рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рддреИрдирд╛рдд рдЧрд░реНрдиреЗрдЫрд┐рдиреН, GitLab рдорд╛ рдирдпрд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ, рдирдпрд╛рдБ Pantheon рд╕рд╛рдЗрдЯ, рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд░ SSH рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрдбрд╛рди рдЧрд░реНрдиреЗрдЫред

рд▓реЗрдЦрдХрдХреЛ рдмрд╛рд░реЗрдорд╛

рдПрдиреНрдбреНрд░рдпреВ рдЯреЗрд▓рд░рд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ Pantheon.

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

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