เชชเซเชจเซเชฅเชฟเชเชจ เชเชพเชคเซเชจเชพ เช
เชฎเชพเชฐเชพ เชเซเชธเซเช เชกเซเชตเชฒเชชเชฐ เชเซเชฒเซเชธ เชธเชฐเซเชเช GitLab CI/CD เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฐเซเชกเชชเซเชฐเซเชธ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเชเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเชตเซเช เชคเซ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชเซ.
ะ
เชนเซเช เชเชฃเซเชตเชพเชฐ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเชจเซ เชเช เชธเซเชเซเชเซเชเช เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ เชธเชเชเชฐเซเชท เชเชฐเชคเชพ เชเซเชเช เชเซเช.
เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชธเชฐเซเชตเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเชพ เชตเชพเชฐเชพเชจเซ เชฐเชพเชน เชเซเชตเซ เช เชฅเชตเชพ เชเซเชฒเชพเชฏเชจเซเชเชจเซ เช เชจเซเชเชง เชธเชพเชฅเซ URL เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเซเชฌ เชเชจเชเชฆ เชฅเชพเชฏ เชเซ: "เช เชนเซเช เชเซเช, เชชเชฐเชเชคเซ เชนเชเซ เชธเซเชงเซ เช เชนเซเช เชเซเชถเซ เชจเชนเซเช."
เชชเชฐเชเชคเซ เชชเซเชจเซเชฅเชฟเชเชจ เชชเชพเชธเซ เชธเชเชธเซเชเชฐเชฃ เชจเชฟเชฏเชเชคเซเชฐเชฃ เช เชฅเชตเชพ เชธเชคเชค เชเชเซเชเชฐเชฃ เช เชจเซ เชเชฎเชพเชตเช (CI/CD) เชฎเชพเชเซเชจเชพ เชธเชพเชงเชจเซ เชจเชฅเซ. เชชเชฐเชเชคเซ เชคเซ เชเช เชฒเชตเชเซเช เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชเซ เชเซเชจเซ เชธเชพเชฅเซ เชคเชฎเซ เชเซเชเชชเชฃ เชเซเชฒเซเชธเชจเซ เชเชเซเชเซเชค เชเชฐเซ เชถเชเซ เชเซ.
เชฎเซเช เช เชชเชฃ เชจเซเชเชงเซเชฏเซเช เชเซ เชเซ เชเซเชฎเซ เชตเชฟเชเชพเชธ เชฎเชพเชเซ เช เชฎเซเช เชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เช เชจเซ เชเชธเซเชฎเซเชฌเชฒเซ เช เชจเซ เชเชฎเชพเชตเช เชฎเชพเชเซ เช เชฒเช เช เชฒเช เชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเซเช เชชเชพเชธเซ เชธเชเชธเซเชเชฐเชฃ เชจเชฟเชฏเชเชคเซเชฐเชฃ เช เชจเซ CI/CD เชฎเชพเชเซ เชตเชฟเชตเชฟเชง เชธเชพเชงเชจเซ เชเซ. เชคเชฎเชพเชฐเซ เชเซเชก เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพ เช เชจเซ เชธเชฎเชธเซเชฏเชพเชเชจเซเช เชจเชฟเชฆเชพเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชฒเซเชธ เชตเชเซเชเซ เชซเซเชฐเชฌเชฆเชฒ เชเชฐเชตเซ เชชเชกเชถเซ.
เชฎเชพเช
เชฎเชจเซ เชเชเซเชฎเซเชถเชจ เชเชฎเซ เชเซ, เชคเซเชฅเซ เชฎเซเช เชชเซเชจเซเชฅเชฟเชเชจเชจเซ เชเชฟเชเชฒเซเชฌ เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเชจเซเชเซเช เชเชฐเชตเซเช เชคเซ เชถเซเชเซเชฏเชพ เชเซเชฅเซ เชเชฟเชเชฒเซเชฌ เชชเชฐเชจเซ เชฎเซเชเซเชฏ เชถเชพเชเชพเชฎเชพเช เชเชฎเชฟเชเซเชธเชจเซ เชชเซเชจเซเชฅเชฟเชเชจเชจเชพ เชฎเซเชเซเชฏ เชตเชฟเชเชพเชธ เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช เชคเซเชจเชพเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ. เช เชจเซ GitLab เชชเชฐ เชฎเชฐเซเช เชตเชฟเชจเชเชคเซเช เชชเซเชจเซเชฅเชฟเชเชจเชฎเชพเช เชฎเชฒเซเชเชฟเชกเซเชต เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช เชเซเชก เชฌเชจเชพเชตเซ เช เชจเซ เชเชฎเชพเชตเซ เชถเชเซ เชเซ.
เช เชเซเชฏเซเชเซเชฐเซเชฏเชฒเชฎเชพเช, เชนเซเช เชคเชฎเชจเซ เชเชฟเชเชฒเซเชฌ เช เชจเซ เชชเซเชจเซเชฅเชฟเชเชจ เชตเชเซเชเซ เชเชจเซเชเซเชถเชจ เชเซเชตเซ เชฐเซเชคเซ เชธเซเช เชเชฐเชตเซเช เช เชจเซ เชคเชฎเชพเชฐเชพ เชตเชฐเซเชกเชชเซเชฐเซเชธ เช เชจเซ เชกเซเชฐเซเชชเชฒ เชตเชฐเซเชเชซเซเชฒเซเชจเซ เชเชชเซเชเชฟเชฎเชพเชเช เชเชฐเชตเซเช เชคเซ เชตเชฟเชถเซ เชฒเช เชเชเชถ.
เช
เชฒเชฌเชคเซเชค เชคเซ เชถเชเซเชฏ เชเซ,
เชชเชฐเชฟเชเชฏ
เช เชชเซเชธเซเช เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชธเชฎเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชชเซเชจเซเชฅเชฟเชเชจ เชฆเชฐเซเช เชธเชพเชเชเชจเซ เชคเซเชฐเชฃ เชเชเชเซเชฎเชพเช เชคเซเชกเซ เชเซ: เชเซเชก, เชกเซเชเชพเชฌเซเช เช เชจเซ เชซเชพเชเชฒเซ.
เชเซเชกเชฎเชพเช เชตเชฐเซเชกเชชเซเชฐเซเชธ เชเซเชฐ, เชชเซเชฒเชเชเชจเซเชธ เช
เชจเซ เชฅเซเชฎเซเชธ เชเซเชตเซ CMS เชซเชพเชเชฒเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ. เช เชซเชพเชเชฒเซ เชฎเชพเช เชฎเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
เชชเซเชจเซเชฅเชฟเชเชจเชฎเชพเช เชซเชพเชเชฒเซ เชฎเซเชกเชฟเชฏเชพ เชซเชพเชเชฒเซ เชเซ, เชเชเชฒเซ เชเซ, เชธเชพเชเช เชฎเชพเชเซเชจเซ เชเชฌเซเช. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชคเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฆเซเชตเชพเชฐเชพ เช
เชชเชฒเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช
เชจเซ เชเชฟเช เชคเซเชฎเชจเซ เช
เชตเชเชฃเซ เชเซ.
เชงเชพเชฐเชฃเชพ
เชชเซเชจเซเชฅเชฟเชเชจ เช
เชจเซ เชเชฟเชเชฒเซเชฌ เชชเชฐเชจเชพ เชฎเชพเชฐเชพ เชชเซเชฐเซเชเซเชเซเชเชจเซ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ pantheon-gitlab-blog-demo
. เชชเซเชฐเซเชเซเชเซเชเชจเซเช เชจเชพเชฎ เช
เชจเชจเซเชฏ เชนเซเชตเซเช เชเซเชเช. เช
เชนเซเช เชเชชเชฃเซ เชตเชฐเซเชกเชชเซเชฐเซเชธ เชธเชพเชเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชถเซเช. เชคเชฎเซ Drupal เชฒเช เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชคเชฎเชพเชฐเซ เชเซเชเชฒเซเช เชตเชธเซเชคเซเช เชฌเชฆเชฒเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ.
เชนเซเช เชเชชเชฏเซเช เชเชฐเซเชถ
เชเช เชชเซเชฐเซเชเซเชเซเช เชฌเชจเชพเชตเซ
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชฌเชจเชพเชตเซเช
เชนเชตเซ
เชเซ เชคเชฎเชพเชฐเชพ เชนเชพเชฅเชจเซ เชเชเชเช เชฌเชฆเชฒเชตเชพ เชฎเชพเชเซ เชเชเชเชตเชพเชณ เชเชตเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชชเซเชฒเชเชฟเชจเซเชธเชจเซ เชฆเซเชฐ เชเชฐเซ เช เชฅเชตเชพ เชเชฎเซเชฐเซ, เชคเซ เชงเซเชฐเช เชฐเชพเชเซ. เชธเชพเชเช เชนเชเซ เชธเซเชงเซ GitLab เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒ เชจเชฅเซ, เช เชจเซ เช เชฎเซ เชเชเซเชเซเช เชเซเช เชเซ เชคเชฎเชพเชฎ เชเซเชก เชซเซเชฐเชซเชพเชฐเซ GitLab เชฎเชพเชฐเชซเชคเซ เชฅเชพเชฏ.
เชเชเชตเชพเชฐ เช เชฎเซ เชตเชฐเซเชกเชชเซเชฐเซเชธ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชฒเชเช, เชชเซเชจเซเชฅเชฟเชเชจ เชตเซเชฌเชธเชพเชเช เชกเซเชถเชฌเซเชฐเซเชก เชชเชฐ เชชเชพเชเชพ เชเชพเช เช เชจเซ เชตเชฟเชเชพเชธ เชฎเซเชกเชจเซ Git เชฎเชพเช เชฌเชฆเชฒเซ.
GitLab เชชเชฐ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชเชฎเชฟเช
เชนเชตเซ เชคเชฎเชพเชฐเซ เชชเซเชจเซเชฅเชฟเชเชจ เชธเชพเชเช เชชเชฐเชฅเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชตเชฐเซเชกเชชเซเชฐเซเชธ เชเซเชกเชจเซ เชเชฟเชเชฒเซเชฌเชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชชเซเชจเซเชฅเชฟเชเชจ เชธเชพเชเชเชจเชพ เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ เชเซเชกเชจเซ เชเซเชฒเซเชจ เชเชฐเซเช เชเซเช, เช เชจเซ เชชเชเซ เชคเซเชจเซ เชเชฟเชเชฒเซเชฌ เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช เชฎเซเชเชฒเซเช เชเซเช.
เชคเซเชจเซ เชธเชฐเชณ เช
เชจเซ เชธเซเชฐเชเซเชทเชฟเชค เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ,
เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชตเซเชฌเชธเชพเชเช เชกเซเชถเชฌเซเชฐเซเชก เชชเชฐ เชเซเชฒเซเชจ เชตเชฟเชฅ เชเชฟเช เชซเซเชฒเซเชกเชฎเชพเชเชฅเซ เชเชฆเซเชถเชจเซ เชจเชเชฒ เชเชฐเซเชจเซ เชชเซเชจเซเชฅเชฟเชเชจ เชตเซเชฌเชธเชพเชเชเชจเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชเซเชฒเซเชจ เชเชฐเซ.
เชเซ เชคเชฎเชจเซ เชฎเชฆเชฆเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ เชฆเชธเซเชคเชพเชตเซเชเซ เชตเชพเชเชเซ
เชนเชตเซ เชเชพเชฒเซ เชฌเชฆเชฒเซเช git remote origin
เชชเซเชจเซเชฅเชฟเชเชจเชจเซ เชฌเชฆเชฒเซ เชเชฟเชเชฒเซเชฌ เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซเชถ เชเชฐเชตเชพ เชฎเชพเชเซ. เชคเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ ะบะพะผะฐะฝะดะพะน git remote
เชเชพเชฒเซ GitLab เชชเซเชฐเซเชเซเชเซเช เชชเชฐ เชเชเช เช เชจเซ เชชเซเชฐเซเชเซเชเซเช เชตเชฟเชเชคเซ เชชเซเชทเซเช เชชเชฐ เชเซเชฒเซเชจ เชกเซเชฐเซเชชเชกเชพเชเชจเชฎเชพเชเชฅเซ เชฐเชฟเชชเซเชเซเชเชฐเซ URL เชจเซ เชจเชเชฒ เชเชฐเซเช. เชเชพเชฒเซ เชเซเชฒเซเชจ เชตเชฟเชฅ SSH เชตเชฟเชเชฒเซเชช เชชเชธเชเชฆ เชเชฐเซเช, เชเชพเชฐเชฃ เชเซ เช เชฎเซ เชชเชนเซเชฒเชพเชฅเซ เช SSH เชเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเซ เชเซ.
เชฎเซเชณเชญเซเชค เชฐเซเชคเซ git remote
เชเซเชก เชฐเซเชชเซเชเซเชเชฐเซเชจเซ เชธเซเชฅเชพเชจเชฟเช เชจเชเชฒ เชฎเชพเชเซ - origin
. เช เชฌเชฆเชฒเซ เชถเชเชพเชฏ เชเซ c git remote set-url origin [URL ัะตะฟะพะทะธัะพัะธั GitLab]
, เชเซเชฏเชพเช เชเซเชเชธเชจเซ เชฌเชฆเชฒเซ เชเชชเชฃเซ เชตเชพเชธเซเชคเชตเชฟเช URL เชฆเชพเชเชฒ เชเชฐเซเช เชเซเช.
เช
เชเชคเซ, เช
เชฎเซ เชฒเซเชจเซเช เชเชฐเซเช เชเซเช git push origin master --force
เชตเชฐเซเชกเชชเซเชฐเซเชธ เชเซเชกเชจเซ เชชเซเชจเซเชฅเชฟเชเชจเชฅเซ เชเชฟเชเชฒเซเชฌ เชชเชฐ เชฆเชฌเชพเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ.
-เชซเซเชฐเซเชธ เชตเชฟเชเชฒเซเชช เชฎเชพเชคเซเชฐ เชเช เช เชตเชพเชฐ เชเชฐเซเชฐเซ เชเซ. เชชเชเซ เชเซเชฎเซเชฎเชพเช
git push
เชคเซ GitLab เชชเชฐ เชฐเชนเซเชถเซ เชจเชนเซเช.
เชเชณเชเชชเชคเซเชฐ เช เชจเซ เชเชฒเซ เชธเซเชฏเซเชเชฟเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เชฏเชพเชฆ เชฐเชพเชเซ เชเซ เช เชฎเซ เชชเซเชจเซเชฅเชฟเชเชจ เช เชจเซ เชเชฟเชเชฒเซเชฌเชฎเชพเช เชฒเซเช เชเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ SSH เชเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฎเซเชฐเซ? SSH เชเซเชเชจเชจเซ เชเชชเชฏเซเช GitLab เช เชจเซ Pantheon เชจเซ เช เชงเชฟเชเซเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเช เชถเชเซ เชเซ.
เชเชฟเชเชฒเซเชฌ เชชเชพเชธเซ เชเชคเซเชคเชฎ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เชเซ. เชเซเชเช
เชนเชตเซ เช เชฎเซ เชชเซเชฐเชฅเชฎ เชฌเซ เชชเชเชฒเชพเช เชชเซเชฐเซเชฃ เชเชฐเซเชถเซเช: เชเชพเชฒเซ 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
, เชชเชเซ เชคเชฎเชพเชฐเซ เชคเซเชฎเชพเช เชเชเชเช เชฌเซเชเซเช เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ.
เชนเชตเซ เช เชฎเซ เชชเชพเชเชเชฎเซเช เชชเชเชฒเซเช เชเชฐเซเช เชเซเช เช เชจเซ เชฌเชฟเชฒเซเชก เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเชเชฎเชพเช เชคเชฎเชจเซ เชเชเซเชธเซเชธเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชตเซ เชธเซเชตเชพเชเชฎเชพเช เชคเชฎเซ เชชเซเชฐเชฅเชฎ เชชเชเชฒเชพเชฎเชพเช เชฌเชจเชพเชตเซเชฒ เชเชพเชนเซเชฐ เชเซ เชเชฎเซเชฐเซ.
เช
เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช
เชฎเซ เชเชฟเชเชฒเซเชฌเชฎเชพเชเชฅเซ เชชเซเชจเซเชฅเชฟเชเชจเชจเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชฎเชพเชเชเซเช เชเซเช. เช
เชฎเซ เชชเซเชจเซเชฅเชฟเชเชจ เชฆเชธเซเชคเชพเชตเซเชเชฎเชพเชเชจเซ เชธเซเชเชจเชพเชเชจเซ เช
เชจเซเชธเชฐเซเช เชเซเช
เชฏเชพเชฆ เชฐเชพเชเซ: เชเชพเชจเชเซ SSH GitLab เชฎเชพเช เชเซ, เชเชชเชจ SSH เชชเซเชจเซเชฅเชฟเชเชจเชฎเชพเช เชเซ.
เชเชพเชฒเซ เชฅเซเชกเชพ เชตเชงเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ เชธเซเช เชเชฐเซเช. เชชเซเชฐเชฅเชฎเชจเซ PANTHEON_SITE เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซเชจเซเช เชฎเซเชฒเซเชฏ เชคเชฎเชพเชฐเชพ เชฎเชถเซเชจ เชชเชฐ เชชเซเชจเซเชฅเชฟเชเชจ เชธเชพเชเชเชจเซเช เชจเชพเชฎ เชเซ.
เชฎเชถเซเชจ เชชเชฐเชจเซเช เชจเชพเชฎ เชเซเชฒเซเชจ เชตเชฟเชฅ เชเชฟเช เชเชฎเชพเชจเซเชกเชจเชพ เช เชเชคเซ เชธเซเชเชฟเชฌเชฆเซเชง เชเซ. เชคเชฎเซ เชชเชนเซเชฒเชพเชฅเซ เช เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชธเชพเชเชเชจเซเช เชเซเชฒเซเชจ เชเชฐเซเชฏเซเช เชเซ, เชคเซเชฅเซ เช เชธเซเชฅเชพเชจเชฟเช เชฐเซเชชเซเชเซเชเชฐเซ เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซเช เชจเชพเชฎ เชนเชถเซ.
เชเชเชณ, เชเชพเชฒเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซเชฐเซเชเชฌเชฒ เชธเซเช เชเชฐเซเช PANTHEON_GIT_URL
. เช เชชเซเชจเซเชฅเชฟเชเชจ เชธเชพเชเช เชฎเชพเชเซ เชเชฟเช เชฐเซเชชเซเชเซเชเชฐเซ URL เชเซ เชเซเชจเซ เชเชชเชฃเซ เชชเชนเซเชฒเซเชฅเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชเซ.
เชตเชเชฐ เชฎเชพเชคเซเชฐ SSH เชฐเซเชชเซเชเซเชเชฐเซ URL เชฆเชพเชเชฒ เชเชฐเซ
git clone
เช เชจเซ เช เชเชคเซ เชฎเชถเซเชจ เชชเชฐ เชธเชพเชเชเชจเซเช เชจเชพเชฎ.
เชซเชซ. เชคเซ เชฅเช เชเชฏเซเช, เชนเชตเซ เชเชชเชฃเซ เชเชชเชฃเซ เชซเชพเชเชฒ เชชเซเชฐเซ เชเชฐเซ เชถเชเซเช เชเซเช .gitlab-ci.yml
.
เชเชฎเชพเชตเช เชเชพเชฐเซเชฏ เชฌเชจเชพเชตเซ
เช เชฎเซ เชถเชฐเซเชเชคเชฎเชพเช GitLab CI เชธเชพเชฅเซ เชถเซเช เชเชฐเซเชถเซเช เชคเซ เชญเซเชคเชเชพเชณเชฎเชพเช เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเช เชธเชพเชฅเซ เช เชฎเซ เชเซ เชเชฐเซเชฏเซเช เชเซ เชคเซเชจเชพ เชเซเชตเซเช เช เชเซ. เชชเชฐเชเชคเซ เช เชตเชเชคเซ เชเชชเชฃเซ เชชเซเชจเซเชฅเชฟเชเชจ เชฐเชฟเชชเซเชเซเชเชฐเซเชจเซ เชฌเซเชเชพ เชฐเชฟเชฎเซเช เชเชฟเช เชธเซเชคเซเชฐเซเชค เชคเชฐเซเชเซ เชเชฎเซเชฐเซเชถเซเช เช เชจเซ เชชเชเซ เชเซเชกเชจเซ เชเชฟเชเชฒเซเชฌเชฅเซ เชชเซเชจเซเชฅเชฟเชเชจ เชชเชฐ เชฆเชฌเชพเชฃ เชเชฐเซเชถเซเช.
เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเซเช 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 เชฎเชพเช เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชเชพเชฒเชถเซ เช
เชจเซ เชเชฎเชฟเช เชธเชฌเชฎเชฟเช เชเชฐเชถเซ .gitlab-ci.yml
เชชเซเชจเซเชฅเชฟเชเชจ เชเชพเชคเซ. เชเชพเชฒเซ เชเช เชจเชเชฐ เชเชฐเซเช.
เชชเซเชจเซเชฅเชฟเชเชจเชจเซ เชฎเชฐเซเช เชตเชฟเชจเชเชคเซ เชฅเซเชฐเซเชกเซ เชฎเซเชเชฒเซ เชฐเชนเซเชฏเซเช เชเซ
เช
เชนเซเช เชเชชเชฃเซ เชฎเชพเชฐเซ เชชเซเชฐเชฟเชฏ เชชเซเชจเซเชฅเชฟเชเชจ เชธเซเชตเชฟเชงเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช -
เชเชพเชฒเซ เชธเซเชชเซเชฐเชฅเชฎ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชจเชตเซ 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
เชฆเชฌเชพเชตเซเชจเซ เชฎเชฐเซเช เชตเชฟเชจเชเชคเซ เชฌเชจเชพเชตเซ.
เชฎเชฐเซเช เชตเชฟเชจเชเชคเซ เชฌเชจเชพเชตเซเชจเซ, เช
เชฎเซ CI/CD เชเชพเชฐเซเชฏ เชเซเชตเซ เชฐเซเชคเซ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซ เชเซเชเช เชเซเช deploy:multidev
.
เชเซเช, เชชเซเชจเซเชฅเชฟเชเชจ เชชเชฐ เชเช เชจเชตเซ เชฆเซเชฐเซ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ. เชชเชฐเชเชคเซ เชเซ เชเชชเชฃเซ เชชเซเชจเซเชฅเชฟเชเชจ เชธเชพเชเช เชกเซเชถเชฌเซเชฐเซเชก เชชเชฐ เชฎเชฒเซเชเชฟเชฆเซเชต เชตเชฟเชญเชพเชเชฎเชพเช เชเชเชถเซเช, เชคเซ เชเชชเชฃเซ เชคเซเชฏเชพเช เชจเชตเซเช เชตเชพเชคเชพเชตเชฐเชฃ เชเซเชเชถเซเช เชจเชนเซเช.
เชเชพเชฒเซ เชเชฟเช เชถเชพเชเชพเช เชตเชฟเชญเชพเช เชเซเชเช.
เชชเชฐเชฟเชฃเชพเชฎเซ, เช
เชฎเชพเชฐเชพ เชฅเซเชฐเซเชก mr-1
เชชเซเชจเซเชฅเชฟเชเชจ เชชเชฐ เชชเชนเซเชเชเซเชฏเซ. เชเชพเชฒเซ เชถเชพเชณเชพเชฎเชพเชเชฅเซ เชตเชพเชคเชพเชตเชฐเชฃ เชฌเชจเชพเชตเซเช mr-1
.
เช
เชฎเซ เชเช เชฎเชฒเซเชเชฟเชกเซเชต เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชฌเชจเชพเชตเซเชฏเซเช เชเซ, เชนเชตเซ เชเชพเชฒเซ GitLab เชชเชฐ เชชเชพเชเชพ เชเชเช เช
เชจเซ เชตเชฟเชญเชพเช เชเซเชเช เชเชพเชฎเชเซเชฐเซ > เชชเชฐเซเชฏเชพเชตเชฐเชฃ. เชฎเชพเชเซ เชเชจเซเชเซเชฐเซเช เชเซเชเชถเซเช dev
ะธ mr-1
.
เช เชเชเชฒเชพ เชฎเชพเชเซ เชเซ เชเชพเชฐเชฃ เชเซ เช
เชฎเซ เชเช เชเชจเซเชเซเชฐเซ เชเชฎเซเชฐเซ เชเซ environment
เชจเชพเชฎ เชธเชพเชฅเซ name
ะธ url
CI/CD เชเชพเชฐเซเชฏเซเชฎเชพเช. เชเซ เชเชชเชฃเซ เชเชชเชจ เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเช เชเชเชเซเชจ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซเช เชเซเช, เชคเซ เชเชชเชฃเชจเซ เชชเซเชจเซเชฅเชฟเชเชจ เชชเชฐเชจเชพ เชฎเชฒเซเชเชฟเชกเซเชต เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเชพ URL เชชเชฐ เชฒเช เชเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชฎเชฒเซเชเชฟเชฆเซเชตเชจเซ เชฐเชเชจเชพเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเซ
เชธเซเชฆเซเชงเชพเชเชคเชฟเช เชฐเซเชคเซ, เชคเชฎเซ เช เชนเซเช เชฐเซเชเซ เชถเชเซ เชเซ เช เชจเซ เชฆเชฐเซเช เชฎเชฐเซเช เชตเชฟเชจเชเชคเซ เชฎเชพเชเซ เชฎเชฒเซเชเชฟเชกเซเชต เชตเชพเชคเชพเชตเชฐเชฃ เชฌเชจเชพเชตเชตเชพเชจเซเช เชฏเชพเชฆ เชฐเชพเชเซ, เชชเชฐเชเชคเซ เช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชธเซเชตเชเชพเชฒเชฟเชค เชฅเช เชถเชเซ เชเซ.
เชชเซเชจเซเชฅเชฟเชเชจ เชชเชพเชธเซ เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชเซเชฒ เชเซ
เชเชจเซ เชเชเชพเชธเชตเชพ เชฎเชพเชเซ เช
เชฎเชจเซ เชจเชตเซ เชฎเชฐเซเช เชตเชฟเชจเชเชคเซเชจเซ เชเชฐเซเชฐ เชเซ. เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชจเชตเซ เชถเชพเชเชพ เชฌเชจเชพเชตเซเช git checkout -b auto-multidev-creation
.
GitLab CI/CD เชเชพเชฐเซเชฏเซเชฎเชพเช เชเชฐเซเชฎเชฟเชจเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเชฐเซเชฎเชฟเชจเชธ เชธเชพเชฅเซ เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เชฎเชพเชเซ เชฎเชถเซเชจ เชเซเชเชจ เช เชจเซ เชเชฐเซเชฎเชฟเชจเชธ เชธเชพเชฅเซ เชเชจเซเชเซเชจเชฐ เชเชฎเซเชเชจเซ เชเชฐเซเชฐ เชเซ.
PANTHEON_MACHINE_TOKEN
.
เชเซ เชคเชฎเซ GitLab เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฎเซเชฐเชตเซเช เชคเซ เชญเซเชฒเซ เชเชฏเชพ เชเซ, เชคเซ เช เชฎเซ เชเซเชฏเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซเชฏเซเช เชเซ เชคเซเชฏเชพเช เชชเชพเชเชพ เชเชพเช
PANTHEON_SITE
.
เชเชฐเซเชฎเชฟเชจเชธ เชธเชพเชฅเซ เชกเซเชเชฐเชซเชพเชเชฒ เชฌเชจเชพเชตเชตเซ
เชเซ เชคเชฎเซ เชกเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเชคเชพ เชจเชฅเซ เช
เชฅเชตเชพ เชคเชฎเชจเซ เชซเชพเชเชฒเซ เชชเชธเชเชฆ เชจเชฅเซ Dockerfile
, เชฎเชพเชฐเซ เชเชฌเซ เชฒเซ registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest
เช
เชจเซ เช เชตเชฟเชญเชพเช เชเซเชกเซ.
เชเชฐเซเชฎเชฟเชจเชธ เช 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 เชเชพเชฐเซเชฏ เชชเซเชฐเซเชฃ เชฅเชตเชพเชจเซ เชฐเชพเชน เชเซเช. เชงเซเชฐเช เชฐเชพเชเซ: เชฎเชฒเซเชเชฟเชฆเซเชต เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชฅเซเชกเซ เชฎเชฟเชจเชฟเชเซ เชฒเชพเชเซ เชถเชเซ เชเซ.
เชชเชเซ เชเชชเชฃเซ เชชเซเชจเซเชฅเชฟเชเชจ เชชเชฐ เชฎเชฒเซเชเชฟเชฆเซเชต เชธเซเชเชฟ เชชเชฐ เชจเชเชฐ เชเชฐเซเช. เชเชน เชเชฎเชคเซเชเชพเชฐ! เชฎเชฒเซเชเชฟเชฆเซเชต เชชเชฐเซเชฏเชพเชตเชฐเชฃ mr-2
เชชเชนเซเชฒเซเชฅเซ เช เช
เชนเซเช.
เชจเชฟเชทเซเชเชฐเซเชท
เชเซเชฏเชพเชฐเซ เช เชฎเซ เชฎเชฐเซเช เชตเชฟเชจเชเชคเซเช เชเซเชฒเชตเชพเชจเซเช เช เชจเซ เชเชชเชฎเซเชณเซ เชตเชพเชคเชพเชตเชฐเชฃ เชฌเชจเชพเชตเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช เชคเซเชฏเชพเชฐเซ เชฎเชพเชฐเซ เชเซเชฎเชจเซ เชเชฃเซ เชตเชงเซ เชฎเชเชพ เชเชตเซ.
GitLab เช เชจเซ Pantheon เชจเชพ เชถเชเซเชคเชฟเชถเชพเชณเซ เชธเชพเชงเชจเซ เชธเชพเชฅเซ, เชคเชฎเซ GitLab เชจเซ Pantheon เชธเชพเชฅเซ เชเชชเชฎเซเชณเซ เชเชจเซเชเซเช เชเชฐเซ เชถเชเซ เชเซ.
เช เชฎเซ GitLab CI/CD เชจเซ เชเชชเชฏเซเช เชเชฐเชคเชพ เชนเซเชตเชพเชฅเซ, เช เชฎเชพเชฐเชพ เชตเชฐเซเชเชซเซเชฒเซเชจเซ เชตเชงเชตเชพ เชฎเชพเชเซ เชเชเซเชฏเชพ เชฎเชณเชถเซ. เชคเชฎเชจเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชนเซเช เชเซเชเชฒเชพเช เชตเชฟเชเชพเชฐเซ เชเซ:
- เชฌเชฟเชฒเซเชก เชธเซเชเซเชช เชเชฎเซเชฐเซ.
- เชธเซเชตเชเชพเชฒเชฟเชค เชชเชฐเซเชเซเชทเชฃ เชเชฎเซเชฐเซ.
- เชเซเชก เชงเซเชฐเชฃเซ เชชเซเชฐเซเชฃ เชฅเชพเชฏ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชเชพเชฐเซเชฏ เชเชฎเซเชฐเซ.
- เชเชฎเซเชฐเซ
เชเชคเชฟเชถเซเชฒ เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเซเชฐเชเซเชทเชพ เชชเชฐเซเชเซเชทเชฃ .
GitLab, Pantheon เช เชจเซ เชเชเซเชฎเซเชถเชจ เชตเชฟเชถเซ เชคเชฎเซ เชถเซเช เชตเชฟเชเชพเชฐเซ เชเซ เชคเซ เช เชฎเชจเซ เชเชฃเชพเชตเซ.
PS เชถเซเช เชคเชฎเซ เชเชพเชฃเซ เชเซ เชเซ เชเชฐเซเชฎเชฟเชจเชธ, เชชเซเชจเซเชฅเชฟเชเชจเชจเซเช เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชเซเชฒ,
เชชเซเชจเซเชฅเชฟเชเชจเชฎเชพเช เช
เชฎเซ เช
เชฎเชพเชฐเชพ เชธเชเชธเซเชเชฐเชฃ 2 เชชเชฐ เชธเชพเชฐเซเช เชเชพเชฎ เชเชฐเซเชฏเซเช เชเซ build:project:create
เชคเชฎเชพเชฐเซ เชซเชเซเชค เชชเซเชจเซเชฅเชฟเชเชจ เชเซเชเชจ เช
เชจเซ เชเชฟเชเชฒเซเชฌ เชเซเชเชจเชจเซ เชเชฐเซเชฐ เชเซ. เชคเซเชฃเซ เชเชเชชเซเชเชฐ เช
เชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชชเชฐเซเชเซเชทเชฃ เชธเชพเชฅเซเชจเชพ เชจเชฎเซเชจเชพ เชชเซเชฐเซเชเซเชเซเชเซเชธเชฎเชพเชเชฅเซ เชเชเชจเซ เชเชฎเชพเชตเชถเซ, เชจเชตเซ เชชเซเชจเซเชฅเชฟเชเชจ เชธเชพเชเช เชเชฟเชเชฒเซเชฌเชฎเชพเช เชเช เชจเชตเซ เชชเซเชฐเซเชเซเชเซเช เชฌเชจเชพเชตเชถเซ เช
เชจเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซเชฐเซเชเชฌเชฒเซเชธ เช
เชจเซ SSH เชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชจเซ เชเชจเซเชเซเช เชเชฐเชถเซ.
เชฒเซเชเช เชตเชฟเชถเซ
เชเชจเซเชกเซเชฐเซ เชเซเชฒเชฐ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชเซเชฒเซเชธ เชฌเชจเชพเชตเซ เชเซ
เชธเซเชฐเซเชธ: www.habr.com