เจชเฉเจจเจฅเฉเจเจจ เจตเจฟเจเฉ เจธเจพเจกเจพ เจเฉเจธเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจเฉเจฒ เจธเจฟเจฐเจเจฃเจนเจพเจฐ เจเจธ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจฆเจพ เจนเฉ เจเจฟ GitLab CI/CD เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจคเฉเจจเจพเจคเฉเจเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจธเจตเฉเจเจฒเจฟเจค เจเจฐเจจเจพ เจนเฉเฅค
ะ
เจฎเฉเจ เจ เจเจธเจฐ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจจเฉเฉฐ เจธเจฟเฉฐเจเจฒ เจธเจเฉเจเจฟเฉฐเจ เจธเจฐเจตเจฐ เจจเจพเจฒ เจธเฉฐเจเจฐเจธเจผ เจเจฐเจฆเฉ เจตเฉเจเจฆเจพ เจนเจพเจเฅค
เจเฉฐเจเจฐเจฎเฉเจกเฉเจเจ เจธเจฐเจตเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจเจพเจ เจเจพเจนเจเจพเจ เจจเฉเฉฐ เจเจธ เจจเฉเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ URL เจญเฉเจเจฃ เจฒเจ เจเจชเจฃเฉ เจตเจพเจฐเฉ เจฆเจพ เจเฉฐเจคเจเจผเจพเจฐ เจเจฐเจจเจพ เจฌเจนเฉเจค เจเฉเจธเจผเฉ เจฆเฉ เจเฉฑเจฒ เจนเฉ: "เจเฉฑเจฅเฉ เจฆเฉเจเฉ, เจชเจฐ เจ เจเฉ เจเฉฑเจฅเฉ เจจเจพ เจฆเฉเจเฉเฅค"
เจชเจฐ Pantheon เจเฉเจฒ เจธเฉฐเจธเจเจฐเจฃ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจเจพเจ เจจเจฟเจฐเฉฐเจคเจฐ เจเจเฉเจเจฐเจฃ เจ เจคเฉ เจคเฉเจจเจพเจคเฉ (CI/CD) เจฒเจ เจเฉเจฒ เจจเจนเฉเจ เจนเจจเฅค เจชเจฐ เจเจน เจเฉฑเจ เจฒเจเจเจฆเจพเจฐ เจชเจฒเฉเจเจซเจพเจฐเจฎ เจนเฉ เจเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉเจ เจเจฟเจธเฉ เจตเฉ เจธเจพเจงเจจ เจจเฉเฉฐ เจเฉเฉ เจธเจเจฆเฉ เจนเฉเฅค
เจฎเฉเจ เจเจน เจตเฉ เจฆเฉเจเจฟเจ เจนเฉ เจเจฟ เจเฉเจฎเจพเจ เจตเจฟเจเจพเจธ เจฒเจ เจเฉเจ เจธเฉฐเจฆเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉเจเจ เจนเจจ, เจ เจคเฉ เจ เจธเฉเจเจฌเจฒเฉ เจ เจคเฉ เจคเฉเจจเจพเจคเฉ เจฒเจ เจตเฉฑเจเฉ-เจตเฉฑเจเจฐเฉเฅค
เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจนเจจเจพเจ เจเฉเจฒ เจตเจฐเจเจจ เจเฉฐเจเจฐเฉเจฒ เจ เจคเฉ CI/CD เจฒเจ เจตเฉฑเจ-เจตเฉฑเจ เจเฉเจฒ เจนเจจเฅค เจเฉเจก เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจ เจ เจคเฉ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเจพ เจจเจฟเจฆเจพเจจ เจเจฐเจจ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจฒเฉ เจฆเฉเจเจฒเฉ เจเฉเฉฐเจฎเจฃเจพ เจ เจคเฉ เจเฉเจฒเจธ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจธเจตเจฟเจ เจเจฐเจจเจพ เจชเจตเฉเจเจพเฅค
'เจคเฉ
เจฎเฉเจจเฉเฉฐ เจเจเฉเจฎเฉเจธเจผเจจ เจชเจธเฉฐเจฆ เจนเฉ, เจเจธเจฒเจ เจฎเฉเจ เจเจน เจธเจฟเฉฑเจเจฟเจ เจเจฟ เจชเฉเจจเจฅเฉเจเจจ เจจเฉเฉฐ GitLab เจจเจพเจฒ เจเจฟเจตเฉเจ เจเฉเฉเจจเจพ เจนเฉ เจคเจพเจ เจเจฟ GitLab 'เจคเฉ เจฎเฉเฉฑเจ เจธเจผเจพเจเจพ เจจเฉเฉฐ เจเฉเจคเฉ เจเจ เจตเจเจจเจฌเฉฑเจงเจคเจพเจตเจพเจ เจจเฉเฉฐ Pantheon เจตเจฟเฉฑเจ เจฎเฉเฉฑเจ เจตเจฟเจเจพเจธ เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจ เจคเจพเจเจจเจพเจค เจเฉเจคเจพ เจเจพ เจธเจเฉเฅค เจ เจคเฉ GitLab 'เจคเฉ เจฎเจฟเจฒเจพเจเจฃ เจฆเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจชเฉเจเจฅเฉเจเจจ เจตเจฟเฉฑเจ เจฎเจฒเจเฉเจกเฉเจต เจตเจพเจคเจพเจตเจฐเจฃเจพเจ เจฒเจ เจเฉเจก เจฌเจฃเจพ เจ เจคเฉ เจคเฉเจจเจพเจค เจเจฐ เจธเจเจฆเฉเจเจ เจนเจจเฅค
เจเจธ เจเจฟเจเจเฉเจฐเจฟเจ เจฒ เจตเจฟเฉฑเจ, เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ GitLab เจ เจคเฉ Pantheon เจตเจฟเจเจเจพเจฐ เจเฉฑเจ เจเจจเฉเจเจธเจผเจจ เจธเจฅเจพเจชเจค เจเจฐเจจ เจ เจคเฉ เจคเฉเจนเจพเจกเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจ เจคเฉ เจกเจฐเฉเจชเจฒ เจตเจฐเจเจซเจฒเฉ เจจเฉเฉฐ เจ เจจเฉเจเฉเจฒ เจฌเจฃเจพเจเจฃ เจฌเจพเจฐเฉ เจฆเฉฑเจธเจพเจเจเจพเฅค
เจฌเฉเจธเจผเฉฑเจ เจเจน เจธเฉฐเจญเจต เจนเฉ,
เจเจพเจฃ เจชเจเจพเจฃ
เจเจธ เจชเฉเจธเจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจธเจฎเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟ เจชเฉเจจเจฅเฉเจเจจ เจนเจฐเฉเจ เจธเจพเจเจ เจจเฉเฉฐ เจคเจฟเฉฐเจจ เจคเฉฑเจคเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฆเจพ เจนเฉ: เจเฉเจก, เจกเฉเจเจพเจฌเฉเจธ เจ เจคเฉ เจซเจพเจเจฒเจพเจเฅค
เจเฉเจก เจตเจฟเฉฑเจ CMS เจซเจพเจเจฒเจพเจ เจธเจผเจพเจฎเจฒ เจนเจจ เจเจฟเจตเฉเจ เจเจฟ เจตเจฐเจกเจชเจฐเฉเจธ เจเฉเจฐ, เจชเจฒเฉฑเจเจเจจ เจ
เจคเฉ เจฅเฉเจฎเฅค เจเจน เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเฉเจคเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ
เจชเฉเจจเจฅเฉเจเจจ เจตเจฟเฉฑเจ เจซเจพเจเจฒเจพเจ เจฎเฉเจกเฉเจ เจซเจพเจเจฒเจพเจ เจนเจจ, เจฏเจพเจจเฉ เจธเจพเจเจ เจฒเจ เจเจฟเฉฑเจคเจฐเฅค เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจน เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉเจเจฐเจพ เจ
เจชเจฒเฉเจก เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ เจ
เจคเฉ เจเจฟเฉฑเจ เจเจจเฉเจนเจพเจ เจจเฉเฉฐ เจจเจเจผเจฐเจ
เฉฐเจฆเจพเจเจผ เจเจฐเจฆเจพ เจนเฉเฅค
เจงเจพเจฐเจจเจพเจตเจพเจ
Pantheon เจ
เจคเฉ GitLab 'เจคเฉ เจฎเฉเจฐเฉ เจชเฉเจฐเจพเจเฉเจเจ เจจเฉเฉฐ เจเจฟเจนเจพ เจเจฟเจ เจนเฉ pantheon-gitlab-blog-demo
. เจชเฉเจฐเฉเจเฉเจเจ เจฆเจพ เจจเจพเจฎ เจตเจฟเจฒเฉฑเจเจฃ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเฉฑเจฅเฉ เจ
เจธเฉเจ เจเฉฑเจ เจตเจฐเจกเจชเจฐเฉเจธ เจธเจพเจเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจพเจเจเฉเฅค เจคเฉเจธเฉเจ Drupal เจฒเฉ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจ เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค
เจฎเฉเจ เจตเจฐเจคเจพเจเจเจพ
เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจฌเจฃเจพเจ
เจชเจนเจฟเจฒเจพเจ, เจเจ เจฌเจฃเจพเจ
เจนเฉเจฃ
เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจนเฉฑเจฅ เจเฉเจ เจฌเจฆเจฒเจฃ เจฒเจ เจเจพเจฐเจธเจผ เจเจฐ เจฐเจนเฉ เจนเจจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจชเจฒเฉฑเจเจเจจ เจจเฉเฉฐ เจนเจเจพเจ เจเจพเจ เจเฉเฉเฉ, เจธเจฌเจฐ เจฐเฉฑเจเฉเฅค เจธเจพเจเจ เจ เจเฉ เจคเฉฑเจ GitLab เจจเจพเจฒ เจเจจเฉเจเจ เจจเจนเฉเจ เจนเฉ, เจ เจคเฉ เจ เจธเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจธเจพเจฐเฉ เจเฉเจก เจฌเจฆเจฒเจพเจต GitLab เจฐเจพเจนเฉเจ เจนเฉเจฃเฅค
เจเฉฑเจ เจตเจพเจฐ เจเจฆเฉเจ เจ เจธเฉเจ เจตเจฐเจกเจชเจฐเฉเจธ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจชเฉเจจเจฅเฉเจเจจ เจตเฉเจฌเจธเจพเจเจ เจกเฉเจธเจผเจฌเฉเจฐเจก เจคเฉ เจตเจพเจชเจธ เจเจพเจ เจ เจคเฉ เจตเจฟเจเจพเจธ เจฎเฉเจก เจจเฉเฉฐ เจเจฟเฉฑเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเฉเฅค
GitLab 'เจคเฉ เจธเจผเฉเจฐเฉเจเจคเฉ เจชเฉเจฐเจคเฉเจฌเฉฑเจงเจคเจพ
เจนเฉเจฃ เจคเฉเจนเจพเจจเฉเฉฐ เจชเฉเจเจฅเฉเจเจจ เจธเจพเจเจ เจคเฉเจ เจธเจผเฉเจฐเฉเจเจคเฉ เจตเจฐเจกเจชเจฐเฉเจธ เจเฉเจก เจจเฉเฉฐ เจเจฟเฉฑเจเจฒเฉเจฌ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ. เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจชเฉเจจเจฅเฉเจเจจ เจธเจพเจเจ เจฆเฉ เจเจฟเฉฑเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจคเฉเจ เจเฉเจก เจจเฉเฉฐ เจเจฒเฉเจจ เจเจฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจซเจฟเจฐ เจเจธเจจเฉเฉฐ เจเจฟเฉฑเจเจฒเฉเจฌ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจญเฉเจเจฆเฉ เจนเจพเจเฅค
เจเจธเจจเฉเฉฐ เจเจธเจพเจจ เจ
เจคเฉ เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจฌเจฃเจพเจเจฃ เจฒเจ,
เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจธเจพเจเจ เจกเฉเจธเจผเจฌเฉเจฐเจก 'เจคเฉ เจเจฒเฉเจจ เจตเจฟเจฆ เจเจฟเฉฑเจ เจซเฉเจฒเจก เจคเฉเจ เจเจฎเจพเจเจก เจฆเฉ เจจเจเจฒ เจเจฐเจเฉ เจชเฉเจจเจฅเฉเจเจจ เจธเจพเจเจ เจจเฉเฉฐ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเจฒเฉเจจ เจเจฐเฉเฅค
เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฎเจฆเจฆ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจคเจพเจ เจฆเจธเจคเจพเจตเฉเจเจผ เจชเฉเฉเจนเฉ
เจนเฉเจฃ เจฌเจฆเจฒเจฆเฉ เจนเจพเจ git remote origin
Pantheon เจฆเฉ เจฌเจเจพเจ GitLab เจตเฉฑเจฒ เจเจธเจผเจพเจฐเจพ เจเจฐเจจ เจฒเจเฅค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ ะบะพะผะฐะฝะดะพะน git remote
เจเจฒเฉ GitLab เจชเฉเจฐเฉเจเฉเจเจ 'เจคเฉ เจเฉฑเจฒเฉเจ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเฉเจฐเจตเฉ เจชเฉฐเจจเฉ 'เจคเฉ เจเจฒเฉเจจ เจกเจฐเจพเจชเจกเจพเจเจจ เจคเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ URL เจฆเฉ เจจเจเจฒ เจเจฐเฉเจเฅค เจเจ เจเจฒเฉเจจ เจตเจฟเจฆ SSH เจตเจฟเจเจฒเจช เจฆเฉ เจเฉเจฃ เจเจฐเฉเจ, เจเจฟเจเจเจเจฟ เจ เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ SSH เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐ เจฒเจฟเจ เจนเฉเฅค
เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ git remote
เจเฉเจก เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจฆเฉ เจธเจฅเจพเจจเจ เจเจพเจชเฉ เจฒเจ - origin
. เจเจธ เจจเฉเฉฐ เจฌเจฆเจฒเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ c git remote set-url origin [URL ัะตะฟะพะทะธัะพัะธั GitLab]
, เจเจฟเฉฑเจฅเฉ เจฌเจฐเฉเจเจเจพเจ เจฆเฉ เจฌเจเจพเจ เจ
เจธเฉเจ เจ
เจธเจฒ URL เจฆเจพเจเจฒ เจเจฐเจฆเฉ เจนเจพเจเฅค
เจ
เฉฐเจค เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ git push origin master --force
เจตเจฐเจกเจชเจฐเฉเจธ เจเฉเจก เจจเฉเฉฐ Pantheon เจคเฉเจ GitLab เจคเฉฑเจ เจงเฉฑเจเจฃ เจฒเจเฅค
-เจซเฉเจฐเจธ เจตเจฟเจเจฒเจช เจธเจฟเจฐเจซ เจเฉฑเจ เจตเจพเจฐ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉเฅค เจซเจฟเจฐ เจเฉเจฎเจพเจ เจตเจฟเฉฑเจ
git push
เจเจน GitLab 'เจคเฉ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพเฅค
เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ เจ เจคเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ
เจฏเจพเจฆ เจฐเฉฑเจเฉ เจเจฟ เจ เจธเฉเจ Pantheon เจ เจคเฉ GitLab เจตเจฟเฉฑเจ เจฒเจพเจเจเจจ เจเจฐเจจ เจฒเจ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ SSH เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเฉเฉเจฟเจ เจนเฉ? SSH เจเฉเจเจจ เจฆเฉ เจตเจฐเจคเฉเจ GitLab เจ เจคเฉ Pantheon เจจเฉเฉฐ เจ เจงเจฟเจเจพเจฐเจค เจเจฐเจจ เจฒเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค
GitLab เจเฉเจฒ เจธเจผเจพเจจเจฆเจพเจฐ เจฆเจธเจคเจพเจตเฉเจเจผ เจนเจจเฅค เจเจฒเฉ เจตเฉเจเจฆเฉ เจนเจพเจ
เจ เจธเฉเจ เจนเฉเจฃ เจชเจนเจฟเจฒเฉ เจฆเฉ เจชเฉเจพเจ เจชเฉเจฐเฉ เจเจฐเจพเจเจเฉ: เจเจฒเฉ ssh-keygen เจจเจพเจฒ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจจเจตเจพเจ SSH เจเฉเฉฐเจเฉ เจเฉเฉเจพ เจฌเจฃเจพเจเจ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจเฉเจ เจชเฉเจฐเจพเจเจตเฉเจ เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจเฉเฉเฉเจเฅค.
เจซเจฟเจฐ เจ
เจธเฉเจ เจชเฉเฉฑเจเจพเจเจเฉ SSH_PRIVATE_KEY
เจจเฉเฉฐ
เจคเฉเจเฉ เจ
เจคเฉ เจเฉเจฅเฉ เจชเฉเจพเจ
เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจตเจพเจเจเฉ .gitlab-ci.yml
เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉ เจธเจฎเฉฑเจเจฐเฉ เจฆเฉ เจจเจพเจฒ:
before_script:
# See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
- mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
- git config --global user.email "$GITLAB_USER_EMAIL"
- git config --global user.name "Gitlab CI"
เจเจฒเฉ เจ
เจเฉ เจซเจพเจเจฒ เจจเฉเฉฐ เจเจฎเจฟเจ เจจเจพ เจเจฐเฉเจ .gitlab-ci.yml
, เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ เจตเจฟเฉฑเจ เจเฉเจ เจนเฉเจฐ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค
เจนเฉเจฃ เจ เจธเฉเจ เจชเฉฐเจเจตเจพเจ เจเจฆเจฎ เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจธเจฐเจตเจเจจเจ เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจเจฐเฉ เจเฉ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเฉ เจชเฉเจพเจ เจตเจฟเฉฑเจ เจฌเจฃเจพเจ เจนเฉ เจเจนเจจเจพเจ เจธเฉเจตเจพเจตเจพเจ เจตเจฟเฉฑเจ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฌเจฟเจฒเจก เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเฉ เจฒเฉเฉ เจนเฉ.
เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ GitLab เจคเฉเจ Pantheon เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจเฅค เจ
เจธเฉเจ เจชเฉเจเจฅเฉเจเจจ เจฆเจธเจคเจพเจตเฉเจเจผ เจตเจฟเฉฑเจ เจจเจฟเจฐเจฆเฉเจธเจผเจพเจ เจฆเฉ เจชเจพเจฒเจฃเจพ เจเจฐเจฆเฉ เจนเจพเจ
เจฏเจพเจฆ เจฐเฉฑเจเฉ: เจชเฉเจฐเจพเจเจตเฉเจ SSH GitLab เจตเจฟเฉฑเจ เจนเฉ, เจเจชเจจ SSH Pantheon เจตเจฟเฉฑเจ เจนเฉเฅค
เจเจ เจเฉเจ เจนเฉเจฐ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจธเฉเจ เจ เจช เจเจฐเฉเจเฅค เจชเจนเจฟเจฒเฉ เจจเฉเฉฐ PANTHEON_SITE เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจธเจฆเจพ เจฎเฉเฉฑเจฒ เจคเฉเจนเจพเจกเฉ เจฎเจธเจผเฉเจจ 'เจคเฉ เจชเฉเจเจฅเฉเจเจจ เจธเจพเจเจ เจฆเจพ เจจเจพเจฎ เจนเฉเฅค
เจฎเจธเจผเฉเจจ เจเฉฑเจคเฉ เจจเจพเจฎ เจเจฒเฉเจจ เจฆเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ เจเจฟเจ เจเจฎเจพเจเจก เจจเจพเจฒ เจธเฉเจเฉเจฌเฉฑเจง เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเจพเจเจ เจจเฉเฉฐ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเจฒเฉเจจ เจเจฐ เจเฉเฉฑเจเฉ เจนเฉ, เจเจธ เจฒเจ เจเจน เจธเจฅเจพเจจเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฆเจพ เจจเจพเจฎ เจนเฉเจตเฉเจเจพเฅค
เจ
เฉฑเจเฉ, เจเจ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจจเฉเฉฐ เจธเฉเจ เจ
เจช เจเจฐเฉเจ PANTHEON_GIT_URL
. เจเจน เจชเฉเจจเจฅเฉเจเจจ เจธเจพเจเจ เจฒเจ เจเจฟเฉฑเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ URL เจนเฉ เจเฉ เจ
เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจตเจฐเจคเฉ เจนเฉเฅค
เจฌเจฟเจจเจพเจ เจธเจฟเจฐเจซเจผ SSH เจฐเจฟเจชเฉเจเจผเจเจฐเฉ URL เจฆเจฟเจ
git clone
เจ เจคเฉ เจ เฉฐเจค 'เจคเฉ เจฎเจธเจผเฉเจจ 'เจคเฉ เจธเจพเจเจ เจฆเจพ เจจเจพเจฎ.
เจซเฉ. เจเจน เจนเฉ เจเจฟเจ เจนเฉ, เจนเฉเจฃ เจ
เจธเฉเจ เจเจชเจฃเฉ เจซเจพเจเจฒ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ .gitlab-ci.yml
.
เจเฉฑเจ เจคเฉเจจเจพเจคเฉ เจเจพเจฐเจ เจฌเจฃเจพเจ
เจ เจธเฉเจ GitLab CI เจฆเฉ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจเฉ เจเจฐเจพเจเจเฉ เจเจน เจฌเจนเฉเจค เจธเจฎเจพเจจ เจนเฉ เจเฉ เจ เจธเฉเจ เจชเจฟเจเจฒเฉ เจธเจฎเฉเจ เจตเจฟเฉฑเจ Git เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจจเจพเจฒ เจเฉเจคเจพ เจนเฉเฅค เจชเจฐ เจเจธ เจตเจพเจฐ, เจเจ เจชเฉเจจเจฅเฉเจเจจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจฆเฉเจเฉ เจฐเจฟเจฎเฉเจ เจเจฟเฉฑเจ เจธเจฐเฉเจค เจตเจเฉเจ เจเฉเฉเฉเจ, เจ เจคเฉ เจซเจฟเจฐ เจเฉเจก เจจเฉเฉฐ GitLab เจคเฉเจ Pantheon เจตเจฟเฉฑเจ เจงเฉฑเจเฉเฅค
เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจเจ เจธเฉฐเจฐเจเจจเจพ เจเจฐเฉเจ 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
Pantheon 'เจคเฉ. เจเจ เจเฉฑเจ เจจเจเจผเจฐ เจฎเจพเจฐเฉเจเฅค
เจชเฉเจจเจฅเฉเจเจจ เจจเฉเฉฐ เจฎเจฐเจ เจฌเฉเจจเจคเฉ เจฅเฉเจฐเฉเจก เจญเฉเจ เจฐเจฟเจนเจพ เจนเฉ
เจเฉฑเจฅเฉ เจ
เจธเฉเจ เจฎเฉเจฐเฉ เจฎเจจเจชเจธเฉฐเจฆ เจชเฉเจเจฅเฉเจเจจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ -
เจชเจนเจฟเจฒเจพเจ เจเจ เจฒเฉเจเจฒ เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจจเจตเฉเจ เจเจฟเฉฑเจ เจธเจผเจพเจเจพ เจฌเจฃเจพเจเจ 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
, เจธเจฟเจฐเจซ เจธเจผเจพเจเจพ เจจเฉเฉฐ Pantheon เจจเฉเฉฐ เจญเฉเจเจฟเจ เจเจฟเจ เจนเฉ, เจจเจพ เจเจฐเจจ เจฒเจ master
.
เจ
เจธเฉเจ เจ
เจชเจกเฉเจ เจเฉเจคเฉ เจซเจพเจเจฒ เจจเฉเฉฐ เจเฉเฉเจฟเจ เจ
เจคเฉ เจชเฉเจฐเจคเฉเจฌเฉฑเจง เจเฉเจคเจพ เจนเฉ .gitlab-ci.yml
, เจ
เจคเฉ เจเจ เจนเฉเจฃ เจเฉฑเจ เจจเจตเฉเจ เจธเจผเจพเจเจพ เจจเฉเฉฐ GitLab เจตเจฟเฉฑเจ เจงเฉฑเจเจฆเฉ เจนเจพเจ git push -u origin multidev-support
.
เจนเฉเจฃ เจฌเฉเจฐเจพเจเจ เจคเฉเจ เจเฉฑเจ เจจเจตเฉเจ เจฎเจฐเจ เจฌเฉเจจเจคเฉ เจฌเจฃเจพเจเจ multidev-support
เจฆเจฌเจพ เจเฉ เจฎเจฟเจฒเจพเจจ เจฆเฉ เจฌเฉเจจเจคเฉ เจฌเจฃเจพเจ.
เจเฉฑเจ เจ
เจญเฉเจฆ เจฌเฉเจจเจคเฉ เจฌเจฃเจพเจเจฃ เจคเฉเจ เจฌเจพเจ
เจฆ, เจ
เจธเฉเจ เจฆเฉเจเจฆเฉ เจนเจพเจ เจเจฟ CI/CD เจเจพเจธเจ เจเจฟเจตเฉเจ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ deploy:multidev
.
เจฆเฉเจเฉ, เจชเฉเจเจฅเฉเจเจจ เจจเฉเฉฐ เจเฉฑเจ เจจเจตเจพเจ เจงเจพเจเจพ เจญเฉเจเจฟเจ เจเจฟเจ เจนเฉ. เจชเจฐ เจเฉเจเจฐ เจ เจธเฉเจ เจชเฉเจเจฅเฉเจเจจ เจธเจพเจเจ เจกเฉเจธเจผเจฌเฉเจฐเจก 'เจคเฉ เจฎเจฒเจเฉเจกเฉเจต เจธเฉเจเจธเจผเจจ 'เจคเฉ เจเจพเจเจฆเฉ เจนเจพเจ, เจคเจพเจ เจ เจธเฉเจ เจเฉฑเจฅเฉ เจจเจตเจพเจ เจตเจพเจคเจพเจตเจฐเจฃ เจจเจนเฉเจ เจฆเฉเจเจพเจเจเฉเฅค
เจเจ เจเจฟเฉฑเจ เจฌเฉเจฐเจพเจเจเจพเจ เจฆเฉ เจญเจพเจ เจจเฉเฉฐ เจตเฉเจเฉเจ.
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจกเจพ เจงเจพเจเจพ mr-1
Pantheon เจจเฉเฉฐ เจฎเจฟเจฒเฉ. เจเจ เจเฉฑเจ เจธเจผเจพเจเจพ เจคเฉเจ เจฎเจพเจนเฉเจฒ เจธเจฟเจฐเจเฉเจ mr-1
.
เจ
เจธเฉเจ เจเฉฑเจ เจฎเจฒเจเฉเจกเฉเจต เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพเจเจ เจนเฉ, เจนเฉเจฃ เจเจ เจเจฟเฉฑเจเจฒเฉเจฌ เจคเฉ เจตเจพเจชเจธ เจเฉฑเจฒเฉเจ เจ
เจคเฉ เจญเจพเจ เจจเฉเฉฐ เจตเฉเจเฉเจ เจเจชเจฐเฉเจธเจผเจจเจเจผ > เจตเจพเจคเจพเจตเจฐเจจ. เจฒเจ เจเจเจเจฐเฉเจเจ เจฆเฉเจเจพเจเจเฉ dev
ะธ mr-1
.
เจเจน เจเจธ เจฒเจ เจนเฉ เจเจฟเจเจเจเจฟ เจ
เจธเฉเจ เจเฉฑเจ เจเจเจเจฐเฉ เจเฉเฉเฉ เจนเฉ environment
เจจเจพเจฎ เจจเจพเจฒ name
ะธ url
CI/CD เจเฉฐเจฎเจพเจ เจตเจฟเฉฑเจเฅค เจเฉเจเจฐ เจ
เจธเฉเจ เจเจชเจจ เจเจจเจตเจพเจเจฐเจฎเฉเจเจ เจเจเจเจจ 'เจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจชเฉเจจเจฅเฉเจเจจ 'เจคเฉ เจฎเจฒเจเฉเจกเฉเจต เจตเจพเจคเจพเจตเจฐเจจ เจฆเฉ URL 'เจคเฉ เจฒเจฟเจเจพเจเจ เจเจพเจตเฉเจเจพเฅค
เจฎเจฒเจเฉเจฆเฉเจต เจฆเฉ เจฐเจเจจเจพ เจจเฉเฉฐ เจธเจตเฉเจเจพเจฒเจค เจเจฐเฉ
เจธเจฟเจงเจพเจเจค เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจเฉฑเจฅเฉ เจฐเฉเจ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจนเจฐ เจเฉฑเจ เจ เจญเฉเจฆ เจฌเฉเจจเจคเฉ เจฒเจ เจเฉฑเจ เจฎเจฒเจเฉเจกเฉเจต เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพเจเจฃเจพ เจฏเจพเจฆ เจฐเฉฑเจเฉ, เจชเจฐ เจเจน เจชเฉเจฐเจเจฟเจฐเจฟเจ เจธเจตเฉเจเจฒเจฟเจค เจนเฉ เจธเจเจฆเฉ เจนเฉเฅค
Pantheon เจเฉเจฒ เจเฉฑเจ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจเฉเจฒ เจนเฉ
เจธเจพเจจเฉเฉฐ เจเจธเจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจจเจตเฉเจ เจฎเจฐเจ เจฌเฉเจจเจคเฉ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจจเจตเฉเจ เจธเจผเจพเจเจพ เจฌเจฃเจพเจเจ 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 เจเฉ เจคเฉเจธเฉเจ เจเจพเจฃเจฆเฉ เจนเฉ เจเจฟ เจเจฐเจฎเจฟเจจเจธ, เจชเฉเจเจฅเฉเจเจจ เจฆเจพ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจเฉเจฒ,
เจ
เจธเฉเจ Pantheon เจตเจฟเจเฉ เจเจชเจฃเฉ เจธเฉฐเจธเจเจฐเจฃ 2 'เจคเฉ เจตเจงเฉเจ เจเฉฐเจฎ เจเฉเจคเจพ เจนเฉ build:project:create
เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจชเฉเจเจฅเฉเจเจจ เจเฉเจเจจ เจ
เจคเฉ เจเฉฑเจ GitLab เจเฉเจเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน เจเฉฐเจชเฉเจเจผเจฐ เจ
เจคเฉ เจเจเฉเจฎเฉเจเจฟเจก เจเฉเจธเจเจฟเฉฐเจ เจฆเฉ เจจเจพเจฒ เจจเจฎเฉเจจเจพ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเฉเจเฉ, GitLab, เจเฉฑเจ เจจเจตเฉเจ Pantheon เจธเจพเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจจเจตเจพเจ เจชเฉเจฐเฉเจเฉเจเจ เจฌเจฃเจพเจเจเฉ, เจ
เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจ
เจคเฉ SSH เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจจเฉเจเจ เจเจฐเฉเจเฉเฅค
เจฒเฉเจเจ เจฌเจพเจฐเฉ
เจเจเจกเจฐเจฟเจ เจเฉเจฒเจฐ เจตเจฟเฉฑเจ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจฒเจ เจเฉเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ
เจธเจฐเฉเจค: www.habr.com