แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜
แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒขแƒฃแƒ›แƒแƒ แƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ˜ Pantheon-แƒจแƒ˜ แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒก แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒก WordPress-แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ GitLab CI/CD-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

ะ’ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ แƒ›แƒ” แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ•แƒ”แƒซแƒ”แƒ‘ แƒแƒฎแƒแƒš แƒ’แƒ–แƒ”แƒ‘แƒก, แƒ แƒแƒ—แƒ แƒ“แƒแƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ WordPress-แƒ˜แƒกแƒ แƒ“แƒ Drupal-แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ— แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒแƒจแƒ˜. แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ” แƒ›แƒแƒ›แƒฌแƒแƒœแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ—แƒแƒœ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ›แƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ•แƒฎแƒ”แƒ“แƒแƒ• แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒ‘แƒ แƒซแƒ•แƒ˜แƒแƒœ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒแƒ“แƒ’แƒ›แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ.

แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒแƒ แƒ“แƒแƒ”แƒšแƒแƒ“แƒ แƒจแƒ”แƒœแƒก แƒ แƒ˜แƒ’แƒก แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒแƒœ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒ’แƒแƒฃแƒ’แƒ–แƒแƒ•แƒœแƒ URL แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ˜แƒ—: โ€žแƒจแƒ”แƒฎแƒ”แƒ“แƒ” แƒแƒฅ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฏแƒ”แƒ  แƒแƒฅ แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒฎแƒ”แƒ“แƒโ€œ.

Multidev แƒ’แƒแƒ แƒ”แƒ›แƒ - แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ - แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒก แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒ—แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ’แƒแƒ แƒ”แƒ›แƒ Git-แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—. แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ URL แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ›แƒจแƒ•แƒ˜แƒ“แƒแƒ“ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒœ, แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒœ แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒœ แƒ“แƒแƒ›แƒขแƒ™แƒ˜แƒชแƒ”แƒ‘แƒ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ˜แƒก แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒœ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (CI/CD). แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒœแƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒ.

แƒ›แƒ” แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ•แƒแƒ›แƒฉแƒœแƒ˜แƒ”, แƒ แƒแƒ› แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒก แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒแƒ— แƒแƒฅแƒ•แƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ CI/CD. แƒ™แƒแƒ“แƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒœแƒแƒกแƒขแƒ˜แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ˜แƒแƒ แƒแƒ— แƒ“แƒ แƒ’แƒแƒ“แƒแƒ แƒ—แƒแƒ— แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก.

แƒฌแƒšแƒ˜แƒก แƒ’แƒ˜แƒขแƒšแƒแƒ‘แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜: แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ‘แƒ˜แƒšแƒ”แƒ—แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ™แƒšแƒแƒกแƒจแƒ˜ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜, แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜. แƒ›แƒ” แƒฏแƒ”แƒ  แƒแƒ  แƒจแƒ”แƒ›แƒฎแƒ•แƒ”แƒ“แƒ แƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒ“แƒ”แƒœแƒก แƒ’แƒ•แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒก.

แƒ›แƒ” แƒ›แƒ˜แƒงแƒ•แƒแƒ แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ” แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜ GitLab-แƒก, แƒ แƒแƒ—แƒ GitLab-แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ“แƒ”แƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜. แƒ“แƒ GitLab-แƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ“แƒ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒก แƒ™แƒแƒ“แƒ˜ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜.

แƒแƒ› แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒจแƒ˜ แƒ›แƒ” แƒ’แƒแƒกแƒฌแƒแƒ•แƒšแƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ GitLab-แƒกแƒ แƒ“แƒ Pantheon-แƒก แƒจแƒแƒ แƒ˜แƒก แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ WordPress แƒ“แƒ Drupal แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ˜.

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒกแƒแƒ แƒ™แƒ˜แƒกแƒ”แƒ‘แƒฃแƒ แƒ˜ GitLab แƒกแƒแƒชแƒแƒ•แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒฉแƒแƒ•แƒฃแƒฆแƒ แƒ›แƒแƒ•แƒ“แƒ”แƒ— GitLab CI แƒ“แƒ แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ”แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒแƒ› แƒžแƒแƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒ”แƒกแƒ›แƒแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒกแƒแƒ˜แƒขแƒก แƒกแƒแƒ› แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒแƒ“ แƒงแƒแƒคแƒก: แƒ™แƒแƒ“แƒก, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก.

แƒ™แƒแƒ“แƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก CMS แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ WordPress แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜, แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ—แƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ”แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ Git แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒ˜, แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒแƒ‘แƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜, แƒ แƒแƒช แƒ˜แƒ›แƒแƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒ™แƒแƒ“แƒ˜ GitLab-แƒ“แƒแƒœ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ Git-แƒ˜แƒ—.
แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒ”แƒ“แƒ˜แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒแƒœแƒฃ แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ“แƒ Git แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒคแƒก แƒ›แƒแƒ—.

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒฃแƒคแƒแƒกแƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜, แƒจแƒ”แƒ˜แƒขแƒงแƒ•แƒ”แƒ— แƒ›แƒ”แƒขแƒ˜ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒแƒœ แƒ“แƒแƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ“แƒ˜แƒ— แƒ“แƒ”แƒ›แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ” pantheon.io-แƒ–แƒ”.

แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ˜

แƒฉแƒ”แƒ›แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ Pantheon-แƒกแƒ แƒ“แƒ GitLab-แƒ–แƒ” แƒฐแƒฅแƒ•แƒ˜แƒ pantheon-gitlab-blog-demo. แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜. แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ— WordPress แƒกแƒแƒ˜แƒขแƒ—แƒแƒœ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒฆแƒแƒ— Drupal, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ แƒแƒฆแƒแƒชแƒ”แƒ‘แƒ˜.

แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ Git แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒ“แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜, แƒ—แƒฃ แƒ’แƒ˜แƒœแƒ“แƒ.

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜

แƒฏแƒ”แƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— GitLab แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ (แƒแƒ›แƒแƒก แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜แƒ—).

แƒแƒฎแƒšแƒ WordPress แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ–แƒ”. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— WordPress แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒคแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ—แƒฃ แƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒขแƒ™แƒ˜แƒ•แƒแƒ— แƒ แƒแƒฆแƒแƒชแƒ˜แƒก แƒจแƒ”แƒกแƒแƒชแƒ•แƒšแƒ”แƒšแƒแƒ“, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฌแƒแƒจแƒแƒšแƒ”แƒ— แƒแƒœ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ—แƒ›แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ—. แƒกแƒแƒ˜แƒขแƒ˜ แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ GitLab-แƒ—แƒแƒœ แƒ“แƒ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ GitLab-แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒ›แƒแƒฎแƒ“แƒ”แƒก.

WordPress-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ˜แƒ— Pantheon แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒคแƒแƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜ Git-แƒ–แƒ”.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ GitLab-แƒ–แƒ”

แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ WordPress แƒ™แƒแƒ“แƒ˜ Pantheon แƒกแƒแƒ˜แƒขแƒ˜แƒ“แƒแƒœ GitLab-แƒจแƒ˜. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ™แƒแƒ“แƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ˜แƒก Git แƒกแƒแƒชแƒแƒ•แƒ˜แƒ“แƒแƒœ แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒ›แƒแƒก GitLab แƒกแƒแƒชแƒแƒ•แƒจแƒ˜.

แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒ“แƒ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ แƒแƒ› แƒ˜แƒงแƒแƒก, แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— SSH แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ›แƒแƒ’แƒ•แƒ˜แƒฌแƒ”แƒ•แƒก แƒžแƒแƒ แƒแƒšแƒ˜แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ— Pantheon Git-แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜. แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— SSH แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ GitLab-แƒก.

แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ˜ แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒแƒ“, แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒคแƒแƒ–แƒ” Clone with Git แƒ•แƒ”แƒšแƒ˜แƒ“แƒแƒœ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜
แƒ—แƒฃ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—, แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ Git for Pantheon-แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ.

แƒแƒฎแƒšแƒ แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒแƒ— git remote originแƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ GitLab-แƒ–แƒ” แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒก. แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก ะบะพะผะฐะฝะดะพะน git remote.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— GitLab แƒžแƒ แƒแƒ”แƒฅแƒขแƒ–แƒ” แƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒแƒ— แƒกแƒแƒชแƒแƒ•แƒ˜แƒก URL แƒฉแƒแƒ›แƒแƒกแƒแƒจแƒšแƒ”แƒšแƒ˜ แƒ™แƒšแƒแƒœแƒ˜แƒ“แƒแƒœ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”. แƒ›แƒแƒ“แƒ˜แƒ— แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒแƒ— Clone with SSH แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก SSH แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒแƒ“ git remote แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒแƒกแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - origin. แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒ’ git remote set-url origin [URL ั€ะตะฟะพะทะธั‚ะพั€ะธั GitLab], แƒกแƒแƒ“แƒแƒช แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒจแƒ”แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒ— แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ• URL-แƒก.

แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— git push origin master --forceWordPress แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒ“แƒแƒœ GitLab-แƒจแƒ˜.

แƒซแƒแƒšแƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒฎแƒ”แƒš. แƒ›แƒ”แƒ แƒ” แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒจแƒ˜ git push แƒ˜แƒก แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ GitLab-แƒ–แƒ”.

แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒ’แƒแƒฎแƒกแƒแƒ•แƒ—, แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ— SSH แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒ แƒแƒ—แƒ แƒจแƒ”แƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒกแƒ แƒ“แƒ GitLab-แƒจแƒ˜? SSH แƒŸแƒ”แƒขแƒแƒœแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก GitLab-แƒ˜แƒกแƒ แƒ“แƒ Pantheon-แƒ˜แƒก แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

GitLab-แƒก แƒแƒฅแƒ•แƒก แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ. แฒ›แƒแƒ“แƒ˜ แƒ•แƒœแƒแƒฎแƒแƒ— แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ SSH แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒจแƒ˜ Docker-แƒ˜แƒก แƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก GitLab CI/CD-แƒ˜แƒ— SSH แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒฉแƒ•แƒ”แƒœ แƒแƒฎแƒšแƒ แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒแƒ  แƒœแƒแƒ‘แƒ˜แƒฏแƒก: แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ SSH แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฌแƒงแƒ•แƒ˜แƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ ssh-keygen-แƒ˜แƒ— แƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ™แƒ”แƒ แƒซแƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒก.

แƒ›แƒ”แƒ แƒ” แƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ— 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, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒก แƒกแƒฎแƒ•แƒ แƒ แƒแƒ›แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ—.

แƒแƒฎแƒšแƒ แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒ›แƒ”แƒฎแƒฃแƒ—แƒ” แƒœแƒแƒ‘แƒ˜แƒฏแƒก แƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ˜แƒ› แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ build แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜.

แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ GitLab-แƒ“แƒแƒœ. แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒจแƒ˜ SSH แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ— แƒ”แƒก แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜.

แƒ’แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒ—: แƒžแƒ˜แƒ แƒแƒ“แƒ˜ SSH แƒแƒ แƒ˜แƒก GitLab-แƒจแƒ˜, แƒฆแƒ˜แƒ SSH แƒแƒ แƒ˜แƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒก แƒฐแƒฅแƒ•แƒ˜แƒ PANTHEON_SITE. แƒ›แƒ˜แƒกแƒ˜ แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒแƒžแƒแƒ แƒแƒขแƒ–แƒ”.

แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒšแƒแƒœแƒ˜แƒก Git แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒ”แƒ— แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ”แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ PANTHEON_GIT_URL. แƒ”แƒก แƒแƒ แƒ˜แƒก Git แƒกแƒแƒชแƒแƒ•แƒ˜แƒก URL แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ—.

แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ SSH แƒกแƒแƒชแƒแƒ•แƒ˜แƒก URL, แƒ’แƒแƒ แƒ”แƒจแƒ” git clone แƒ“แƒ แƒ‘แƒแƒšแƒแƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ” แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ.

แƒคแƒฃ. แƒ”แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ .gitlab-ci.yml.

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ

แƒ แƒแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— GitLab CI-แƒ˜แƒ—, แƒซแƒแƒšแƒ˜แƒแƒœ แƒฐแƒ’แƒแƒ•แƒก แƒ˜แƒ›แƒแƒก, แƒ แƒแƒกแƒแƒช แƒฌแƒแƒ แƒกแƒฃแƒšแƒจแƒ˜ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ— Git แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒฏแƒ”แƒ แƒแƒ“, แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ”แƒแƒ แƒ” แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ Git แƒฌแƒงแƒแƒ แƒ, แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ™แƒแƒ“แƒ˜ GitLab-แƒ“แƒแƒœ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜.

แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ“แƒ˜แƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ”แƒขแƒแƒžแƒ˜ deploy ะธ แƒแƒ›แƒแƒชแƒแƒœแƒ deploy:dev, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ–แƒ”. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ .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-แƒจแƒ˜ แƒ“แƒ แƒฌแƒแƒ แƒแƒ“แƒ’แƒ”แƒœแƒก commit-แƒก .gitlab-ci.yml แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ—.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜

แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒฉแƒ”แƒ›แƒก แƒกแƒแƒงแƒ•แƒแƒ แƒ”แƒš แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก - แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒ˜, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ Git แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜.

แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒฃแƒšแƒ˜แƒ, แƒแƒกแƒ” แƒ แƒแƒ› แƒแƒ› แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒ”แƒ แƒ˜แƒแƒ–แƒฃแƒšแƒแƒ“ แƒ’แƒแƒ–แƒแƒ แƒ“แƒแƒ— แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ‘แƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ–แƒ” แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒฃแƒ แƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— GitLab-แƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.

แƒฏแƒ”แƒ  แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ Git แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— git checkout -b multidev-support. แƒแƒฎแƒšแƒ แƒ˜แƒกแƒ”แƒ• แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒแƒ— แƒ แƒแƒฆแƒแƒช .gitlab-ci.yml.

แƒ›แƒ” แƒ›แƒแƒ›แƒฌแƒแƒœแƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒกแƒแƒฎแƒ”แƒšแƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ mr-1, แƒ›แƒ”แƒแƒ แƒ” - mr-2 แƒ“แƒ แƒ.แƒจ.

แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜. 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 แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ— แƒ แƒแƒ’แƒแƒ  แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ CI/CD แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ deploy:multidev.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒแƒฐแƒ, แƒแƒฎแƒแƒšแƒ˜ แƒ—แƒ”แƒ›แƒ แƒ’แƒแƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ’แƒแƒ“แƒแƒ•แƒแƒšแƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒคแƒแƒ–แƒ” แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜, แƒ˜แƒฅ แƒแƒฎแƒแƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ•แƒ”แƒ  แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ—.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— Git Branches แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒก.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ—แƒ”แƒ›แƒ mr-1 แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ แƒ›แƒแƒฎแƒ•แƒ“แƒ. แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ’แƒแƒ แƒ”แƒ›แƒ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒ“แƒแƒœ mr-1.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— multidev แƒ’แƒแƒ แƒ”แƒ›แƒ, แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— GitLab-แƒก แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ > แƒ’แƒแƒ แƒ”แƒ›แƒ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒก แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก dev ะธ mr-1.

แƒ”แƒก แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ— แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ environment แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— name ะธ url CI/CD แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒจแƒ˜. แƒ—แƒฃ แƒ“แƒแƒ•แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ— แƒฆแƒ˜แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒฎแƒแƒขแƒฃแƒšแƒแƒ–แƒ”, แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒงแƒ•แƒแƒœแƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ–แƒ” แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก URL-แƒ–แƒ”.

multidev-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฉแƒ”แƒ แƒ“แƒ”แƒ— แƒแƒฅ แƒ“แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— multidev แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก.

แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒก แƒแƒฅแƒ•แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ Terminus, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒกแƒ—แƒแƒœ. Terminus แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— multidev แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒ“แƒแƒœ - แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒ˜แƒ GitLab CI.

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— git checkout -b auto-multidev-creation.

Terminus-แƒ˜แƒก GitLab CI/CD แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒœแƒฅแƒแƒœแƒฃแƒ แƒ˜ แƒŸแƒ”แƒขแƒแƒœแƒ˜ Terminus-แƒ˜แƒ— แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜ Terminus-แƒ˜แƒ—.

แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒŸแƒ”แƒขแƒแƒœแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ, แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒ˜แƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— GitLab-แƒจแƒ˜ แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— PANTHEON_MACHINE_TOKEN.

แƒ—แƒฃ แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒแƒ— แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— GitLab แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜, แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ˜แƒ— แƒ˜แƒฅ, แƒกแƒแƒ“แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ— PANTHEON_SITE.

Dockerfile-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ Terminus-แƒ˜แƒ—

แƒ—แƒฃ แƒแƒ  แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Docker-แƒก แƒแƒœ แƒแƒ  แƒ›แƒแƒ’แƒฌแƒแƒœแƒ— แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ Dockerfileแƒแƒ˜แƒฆแƒ” แƒฉแƒ”แƒ›แƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest แƒ“แƒ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ— แƒ”แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ.

GitLab-แƒก แƒแƒฅแƒ•แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜, แƒกแƒแƒ“แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ“แƒ แƒ›แƒแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— Dockerfile แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— Dockerfile Terminus-แƒ˜แƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

Terminus แƒแƒ แƒ˜แƒก PHP แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— PHP แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒ—. แƒ›แƒ” แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘ Terminus-แƒก แƒ™แƒแƒ›แƒžแƒแƒ–แƒ˜แƒขแƒแƒ แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ Docker Composer แƒกแƒฃแƒ แƒแƒ—แƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— 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 แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒกแƒ”แƒฅแƒชแƒ˜แƒ 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

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ“ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒแƒ  แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ•แƒ”แƒ‘ แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ–แƒ”. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ multidev แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒแƒฎแƒšแƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ 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-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒฃแƒ—แƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒก.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒ›แƒฃแƒšแƒขแƒ˜แƒ“แƒ”แƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒแƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ–แƒ”. แƒแƒฐ แƒกแƒแƒกแƒฌแƒแƒฃแƒšแƒ˜! Multidev แƒ’แƒแƒ แƒ”แƒ›แƒ mr-2 แƒฃแƒ™แƒ•แƒ” แƒแƒฅ.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— GitLab แƒ“แƒ Pantheon แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— Drupal แƒ“แƒ WordPress แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒ˜

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒฉแƒ”แƒ›แƒก แƒ’แƒฃแƒœแƒ“แƒก แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ”แƒขแƒ˜ แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ แƒ“แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ.

GitLab-แƒ˜แƒกแƒ แƒ“แƒ Pantheon-แƒ˜แƒก แƒ›แƒซแƒšแƒแƒ•แƒ แƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— GitLab แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒก.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— GitLab CI/CD-แƒก, แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜, แƒ แƒแƒ› แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒแƒก. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒแƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ˜แƒ“แƒ”แƒ แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“:

แƒจแƒ”แƒ’แƒ•แƒแƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ— แƒ แƒแƒก แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ— GitLab-แƒ˜แƒก, Pantheon-แƒ˜แƒกแƒ แƒ“แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

PS แƒ˜แƒชแƒแƒ“แƒ˜แƒ—, แƒ แƒแƒ› Terminus, แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ“แƒ”แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—?

แƒฉแƒ•แƒ”แƒœ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜ แƒ™แƒแƒ แƒ’แƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ 2 แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒ˜ Terminus build แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก GitLab-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—. แƒ—แƒฃ แƒแƒ  แƒ’แƒกแƒฃแƒ แƒ— แƒจแƒ”แƒฌแƒฃแƒฎแƒ“แƒ”แƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒกแƒชแƒแƒ“แƒ”แƒ— แƒ”แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒ“แƒ แƒ“แƒแƒ’แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ— v2 แƒ‘แƒ”แƒขแƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒจแƒ˜. Terminus แƒ’แƒฃแƒœแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก build:project:create แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒŸแƒ”แƒขแƒแƒœแƒ˜ แƒ“แƒ GitLab-แƒ˜แƒก แƒŸแƒ”แƒขแƒแƒœแƒ˜ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒ˜แƒก แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒกแƒแƒœแƒ˜แƒ›แƒฃแƒจแƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒก Composer-แƒ˜แƒ— แƒ“แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒš แƒžแƒ แƒแƒ”แƒฅแƒขแƒก GitLab-แƒจแƒ˜, แƒแƒฎแƒแƒš แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ–แƒ” แƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ SSH แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒ•แƒขแƒแƒ แƒ˜

แƒ”แƒœแƒ“แƒ แƒ˜แƒฃ แƒขแƒ”แƒ˜แƒšแƒแƒ แƒ˜ แƒฅแƒ›แƒœแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒžแƒแƒœแƒ—แƒ”แƒแƒœแƒจแƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ