GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ
เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจตเจฟเจ–เฉ‡ เจธเจพเจกเจพ เจ—เฉˆเจธเจŸ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจŸเฉ‚เจฒ เจธเจฟเจฐเจœเจฃเจนเจพเจฐ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ GitLab CI/CD เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจคเฉˆเจจเจพเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจตเฉˆเจšเจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค

ะ’ Pantheon เจฎเฉˆเจ‚ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจธเจฌเฉฐเจงเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจนเจฎเฉ‡เจธเจผเจพ เจตเจฐเจกเจชเจฐเฉˆเจธ เจ…เจคเฉ‡ เจกเจฐเฉ‚เจชเจฒ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจตเจฟเฉฑเจš เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเจจ เจฆเฉ‡ เจจเจตเฉ‡เจ‚ เจคเจฐเฉ€เจ•เฉ‡ เจฒเฉฑเจญ เจฐเจฟเจนเจพ เจนเจพเจ‚เฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจจเจตเฉ‡เจ‚ เจธเจพเจงเจจเจพเจ‚ เจจเจพเจฒ เจชเฉเจฐเจฏเฉ‹เจ— เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจœเฉ‹เฉœเจจเจพ เจชเจธเฉฐเจฆ เจ•เจฐเจฆเจพ เจนเจพเจ‚.

เจฎเฉˆเจ‚ เจ…เจ•เจธเจฐ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฟเฉฐเจ—เจฒ เจธเจŸเฉ‡เจœเจฟเฉฐเจ— เจธเจฐเจตเจฐ เจจเจพเจฒ เจธเฉฐเจ˜เจฐเจธเจผ เจ•เจฐเจฆเฉ‡ เจตเฉ‡เจ–เจฆเจพ เจนเจพเจ‚เฅค

เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจธเจฐเจตเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจœเจพเจ‚ เจ—เจพเจนเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจจเฉ‹เจŸ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• URL เจญเฉ‡เจœเจฃ เจฒเจˆ เจ†เจชเจฃเฉ€ เจตเจพเจฐเฉ€ เจฆเจพ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจ–เฉเจธเจผเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจนเฉˆ: "เจ‡เฉฑเจฅเฉ‡ เจฆเฉ‡เจ–เฉ‹, เจชเจฐ เจ…เจœเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจจเจพ เจฆเฉ‡เจ–เฉ‹เฅค"

เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจตเจพเจคเจพเจตเจฐเจฃ - เจ เฉฐเจกเฉ‡ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจŸเฉ‚เจฒเจธ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• - เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจฎเฉฐเจ— 'เจคเฉ‡ เจ—เจฟเฉฑเจŸ เจธเจผเจพเจ–เจพเจตเจพเจ‚ เจฒเจˆ เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจนเจฐเฉ‡เจ• เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจตเจพเจคเจพเจตเจฐเจจ เจฆเจพ เจ†เจชเจฃเจพ URL เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจšเฉเฉฑเจชเจšเจพเจช เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ, เจ—เฉเจฃเจตเฉฑเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจฆเฉ‡ เจชเฉˆเจฐเจพเจ‚ 'เจคเฉ‡ เจ•เจฆเจฎ เจฐเฉฑเจ–เฉ‡ เจฌเจฟเจจเจพเจ‚ เจชเฉเจฐเจตเจพเจจเจ—เฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจชเจฐ Pantheon เจ•เฉ‹เจฒ เจธเฉฐเจธเจ•เจฐเจฃ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจœเจพเจ‚ เจจเจฟเจฐเฉฐเจคเจฐ เจเจ•เฉ€เจ•เจฐเจฃ เจ…เจคเฉ‡ เจคเฉˆเจจเจพเจคเฉ€ (CI/CD) เจฒเจˆ เจŸเฉ‚เจฒ เจจเจนเฉ€เจ‚ เจนเจจเฅค เจชเจฐ เจ‡เจน เจ‡เฉฑเจ• เจฒเจšเจ•เจฆเจพเจฐ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจนเฉˆ เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจพเจงเจจ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฎเฉˆเจ‚ เจ‡เจน เจตเฉ€ เจฆเฉ‡เจ–เจฟเจ† เจนเฉˆ เจ•เจฟ เจŸเฉ€เจฎเจพเจ‚ เจตเจฟเจ•เจพเจธ เจฒเจˆ เจ•เฉเจ เจธเฉฐเจฆเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจ…เจคเฉ‡ เจคเฉˆเจจเจพเจคเฉ€ เจฒเจˆ เจตเฉฑเจ–เฉ‹-เจตเฉฑเจ–เจฐเฉ‡เฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‰เจนเจจเจพเจ‚ เจ•เฉ‹เจฒ เจตเจฐเจœเจจ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจ…เจคเฉ‡ CI/CD เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจŸเฉ‚เจฒ เจนเจจเฅค เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจจเจฟเจฆเจพเจจ เจ•เจฐเจจ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจฒเฉ‡ เจฆเฉเจ†เจฒเฉ‡ เจ˜เฉเฉฐเจฎเจฃเจพ เจ…เจคเฉ‡ เจŸเฉ‚เจฒเจธ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจธเจตเจฟเจš เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค

'เจคเฉ‡ GitLab เจตเจฟเจ•เจพเจธ เจธเจพเจงเจจเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจพ เจธเจฎเฉ‚เจน เจนเฉˆ: เจธเฉฐเจธเจ•เจฐเจฃ เจจเจฟเจฏเฉฐเจคเจฐเจฃ, เจŸเจฟเจ•เจŸเจพเจ‚, เจตเจฟเจฒเฉ€เจจ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚, เจ‡เฉฑเจ• เจตเจงเฉ€เจ†-เจ‡เจจ-เจ•เจฒเจพเจธ CI/CD เจชเจพเจˆเจชเจฒเจพเจˆเจจ, เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€, เจ…เจคเฉ‡ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจนเจฐ เจšเฉ€เจœเจผ เจฒเจˆเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจคเฉฑเจ• เจ…เจœเจฟเจนเฉ€ เจ•เฉ‹เจˆ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ€ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจตเจฟเจ•เจพเจธ เจ•เจพเจฐเจœ เจชเฉเจฐเจตเจพเจน เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฐเจจเฉ€ เจœเจผเจฟเจ†เจฆเจพ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจฎเฉˆเจจเฉ‚เฉฐ เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจชเจธเฉฐเจฆ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจ‡เจน เจธเจฟเฉฑเจ–เจฟเจ† เจ•เจฟ เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจจเฉ‚เฉฐ GitLab เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจœเฉ‹เฉœเจจเจพ เจนเฉˆ เจคเจพเจ‚ เจ•เจฟ GitLab 'เจคเฉ‡ เจฎเฉเฉฑเจ– เจธเจผเจพเจ–เจพ เจจเฉ‚เฉฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจตเจšเจจเจฌเฉฑเจงเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ Pantheon เจตเจฟเฉฑเจš เจฎเฉเฉฑเจ– เจตเจฟเจ•เจพเจธ เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจคเจพเจ‡เจจเจพเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เฉ‡เฅค เจ…เจคเฉ‡ GitLab 'เจคเฉ‡ เจฎเจฟเจฒเจพเจ‰เจฃ เจฆเฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจตเจฟเฉฑเจš เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจตเจพเจคเจพเจตเจฐเจฃเจพเจ‚ เจฒเจˆ เจ•เฉ‹เจก เจฌเจฃเจพ เจ…เจคเฉ‡ เจคเฉˆเจจเจพเจค เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจ‡เจธ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ GitLab เจ…เจคเฉ‡ Pantheon เจตเจฟเจšเจ•เจพเจฐ เจ‡เฉฑเจ• เจ•เจจเฉˆเจ•เจธเจผเจจ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจ…เจคเฉ‡ เจกเจฐเฉ‚เจชเจฒ เจตเจฐเจ•เจซเจฒเฉ‹ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฌเจพเจฐเฉ‡ เจฆเฉฑเจธเจพเจ‚เจ—เจพเฅค

เจฌเฉ‡เจธเจผเฉฑเจ• เจ‡เจน เจธเฉฐเจญเจต เจนเฉˆ, เจฎเจฟเจฐเจฐ GitLab เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€, เจชเจฐ เจ…เจธเฉ€เจ‚ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจนเฉฑเจฅเจพเจ‚ เจจเจพเจฒ เจธเจญ เจ•เฉเจ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ—เจฟเฉฑเจŸเจฒเจพเจฌ เจธเฉ€.เจ†เจˆ. เจ…เจคเฉ‡ เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจ‡เจธ เจธเจพเจงเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพ เจธเจฟเจฐเจซเจผ เจคเฉˆเจจเจพเจคเฉ€ เจฒเจˆ เจ•เจฐเฉ‹เฅค

เจœเจพเจฃ เจชเจ›เจพเจฃ

เจ‡เจธ เจชเฉ‹เจธเจŸ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจธเจฎเจเจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจ•เจฟ เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจนเจฐเฉ‡เจ• เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจคเจฟเฉฐเจจ เจคเฉฑเจคเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฆเจพ เจนเฉˆ: เจ•เฉ‹เจก, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจซเจพเจˆเจฒเจพเจ‚เฅค

เจ•เฉ‹เจก เจตเจฟเฉฑเจš CMS เจซเจพเจˆเจฒเจพเจ‚ เจธเจผเจพเจฎเจฒ เจนเจจ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจตเจฐเจกเจชเจฐเฉˆเจธ เจ•เฉ‹เจฐ, เจชเจฒเฉฑเจ—เจ‡เจจ เจ…เจคเฉ‡ เจฅเฉ€เจฎเฅค เจ‡เจน เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ Git เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚, Pantheon เจฆเฉเจ†เจฐเจพ เจฎเฉ‡เจœเจผเจฌเจพเจจเฉ€ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจญเจพเจต เจ…เจธเฉ€เจ‚ Git เจจเจพเจฒ GitLab เจคเฉ‹เจ‚ Pantheon เจคเฉฑเจ• เจ•เฉ‹เจก เจคเฉˆเจจเจพเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค
เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจตเจฟเฉฑเจš เจซเจพเจˆเจฒเจพเจ‚ เจฎเฉ€เจกเฉ€เจ† เจซเจพเจˆเจฒเจพเจ‚ เจนเจจ, เจฏเจพเจจเฉ€ เจธเจพเจˆเจŸ เจฒเจˆ เจšเจฟเฉฑเจคเจฐเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจน เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ…เจชเจฒเฉ‹เจก เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ—เจฟเฉฑเจŸ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจจเจœเจผเจฐเจ…เฉฐเจฆเจพเจœเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจฎเฉเจซเจค เจ–เจพเจคเจพ เจฌเจฃเจพเจ“, เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเฉ‹ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจตเจฐเจ•เจซเจฒเฉ‹ เจœ เจ‡เฉฑเจ• เจกเฉˆเจฎเฉ‹ เจฒเจˆ เจธเจพเจˆเจจ เจ…เฉฑเจช เจ•เจฐเฉ‹ pantheon.io 'เจคเฉ‡เฅค

เจงเจพเจฐเจจเจพเจตเจพเจ‚

Pantheon เจ…เจคเฉ‡ GitLab 'เจคเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจชเฉเจฐเจพเจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ•เจฟเจนเจพ เจ—เจฟเจ† เจนเฉˆ pantheon-gitlab-blog-demo. เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจพ เจจเจพเจฎ เจตเจฟเจฒเฉฑเจ–เจฃ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจฐเจกเจชเจฐเฉˆเจธ เจธเจพเจˆเจŸ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจคเฉเจธเฉ€เจ‚ Drupal เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจ เจšเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

เจฎเฉˆเจ‚ เจตเจฐเจคเจพเจ‚เจ—เจพ Git เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจเจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ—เฉเจฐเจพเจซเจฟเจ•เจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚เจ‚เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹.

เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ“

เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ เจฌเจฃเจพเจ‰ GitLab เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ (เจ…เจธเฉ€เจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจธ 'เจคเฉ‡ เจตเจพเจชเจธ เจ†เจตเจพเจ‚เจ—เฉ‡)เฅค

เจนเฉเจฃ Pantheon 'เจคเฉ‡ เจ‡เฉฑเจ• เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจฌเจฃเจพเจ‰เจฃเจพ. เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจธเจพเจˆเจŸ เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจฒเจˆ เจตเจฐเจกเจชเจฐเฉˆเจธ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚.

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจนเฉฑเจฅ เจ•เฉเจ เจฌเจฆเจฒเจฃ เจฒเจˆ เจ–เจพเจฐเจธเจผ เจ•เจฐ เจฐเจนเฉ‡ เจนเจจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจนเจŸเจพเจ“ เจœเจพเจ‚ เจœเฉ‹เฉœเฉ‹, เจธเจฌเจฐ เจฐเฉฑเจ–เฉ‹เฅค เจธเจพเจˆเจŸ เจ…เจœเฉ‡ เจคเฉฑเจ• GitLab เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจพเจฐเฉ‡ เจ•เฉ‹เจก เจฌเจฆเจฒเจพเจต GitLab เจฐเจพเจนเฉ€เจ‚ เจนเฉ‹เจฃเฅค

เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจตเจฐเจกเจชเจฐเฉˆเจธ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจตเฉˆเจฌเจธเจพเจˆเจŸ เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจ“ เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจ—เจฟเฉฑเจŸ เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹เฅค

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

GitLab 'เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจชเฉเจฐเจคเฉ€เจฌเฉฑเจงเจคเจพ

เจนเฉเจฃ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจธเจพเจˆเจŸ เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจตเจฐเจกเจชเจฐเฉˆเจธ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ—เจฟเฉฑเจŸเจฒเฉˆเจฌ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ. เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจธเจพเจˆเจŸ เจฆเฉ€ เจ—เจฟเฉฑเจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ•เจฒเฉ‹เจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจ—เจฟเฉฑเจŸเจฒเฉˆเจฌ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจญเฉ‡เจœเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ‡เจธเจจเฉ‚เฉฐ เจ†เจธเจพเจจ เจ…เจคเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, Pantheon เจตเจฟเฉฑเจš เจ‡เฉฑเจ• SSH เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเฉ‹ เจ…เจคเฉ‡ เจนเจฐ เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจ—เจฟเจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจ•เจฒเฉ‹เจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจคเจพเจ‚ เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเจพเจธเจตเจฐเจก เจฆเจฐเจœ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจชเจตเฉ‡เจ—เฉ€เฅค เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ GitLab เจตเจฟเฉฑเจš เจ‡เฉฑเจ• SSH เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเฉ‹.

เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจˆเจŸ เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจ•เจฒเฉ‹เจจ เจตเจฟเจฆ เจ—เจฟเฉฑเจŸ เจซเฉ€เจฒเจก เจคเฉ‹เจ‚ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจ•เฉ‡ เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฒเฉ‹เจจ เจ•เจฐเฉ‹เฅค

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ
เจœเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเจฆเจฆ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจคเจพเจ‚ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจชเฉœเฉเจนเฉ‹ Git for Pantheon เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเจจเจพ.

เจนเฉเจฃ เจฌเจฆเจฒเจฆเฉ‡ เจนเจพเจ‚ git remote originPantheon เจฆเฉ€ เจฌเจœเจพเจ GitLab เจตเฉฑเจฒ เจ‡เจธเจผเจพเจฐเจพ เจ•เจฐเจจ เจฒเจˆเฅค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ ะบะพะผะฐะฝะดะพะน git remote.

เจšเจฒเฉ‹ GitLab เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 'เจคเฉ‡ เจšเฉฑเจฒเฉ€เจ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเฉ‡เจฐเจตเฉ‡ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจ•เจฒเฉ‹เจจ เจกเจฐเจพเจชเจกเจพเจ‰เจจ เจคเฉ‹เจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ URL เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ€เจเฅค เจ†เจ‰ เจ•เจฒเฉ‹เจจ เจตเจฟเจฆ SSH เจตเจฟเจ•เจฒเจช เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเฉ€เจ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ SSH เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐ เจฒเจฟเจ† เจนเฉˆเฅค

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš 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 เจ•เฉ‹เจฒ เจธเจผเจพเจจเจฆเจพเจฐ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจนเจจเฅค เจšเจฒเฉ‹ เจตเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ GitLab CI/CD เจจเจพเจฒ SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ 'เจคเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจตเจฟเฉฑเจš เจกเฉŒเจ•เจฐ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ 'เจคเฉ‡ เจธเฉˆเจ•เจธเจผเจจ.

เจ…เจธเฉ€เจ‚ เจนเฉเจฃ เจชเจนเจฟเจฒเฉ‡ เจฆเฉ‹ เจชเฉœเจพเจ… เจชเฉ‚เจฐเฉ‡ เจ•เจฐเจพเจ‚เจ—เฉ‡: เจšเจฒเฉ‹ ssh-keygen เจจเจพเจฒ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ SSH เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจพ เจฌเจฃเจพเจˆเจ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจœเฉ‹เจ‚ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเฉ€เจเฅค.

เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจชเฉเฉฑเจ›เจพเจ‚เจ—เฉ‡ SSH_PRIVATE_KEY เจจเฉ‚เฉฐ GitLab CI/CD เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเจฟเฉฑเจš.
เจคเฉ€เจœเฉ‡ เจ…เจคเฉ‡ เจšเฉŒเจฅเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡ .gitlab-ci.yml เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ:

before_script:
  # See https://docs.gitlab.com/ee/ci/ssh_keys/README.html
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
  - mkdir -p $HOME/.ssh && echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
  - git config --global user.email "$GITLAB_USER_EMAIL"
  - git config --global user.name "Gitlab CI"

เจšเจฒเฉ‹ เจ…เจœเฉ‡ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจ•เจฎเจฟเจŸ เจจเจพ เจ•เจฐเฉ€เจ .gitlab-ci.yml, เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉเจ เจนเฉ‹เจฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจชเฉฐเจœเจตเจพเจ‚ เจ•เจฆเจฎ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจธเจฐเจตเจœเจจเจ• เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจฌเจฃเจพเจˆ เจนเฉˆ เจ‰เจนเจจเจพเจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจฟเจฒเจก เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจชเจนเฉเฉฐเจš เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ.

เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ GitLab เจคเฉ‹เจ‚ Pantheon เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจตเจฟเฉฑเจš เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• SSH เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจจเจพ เจ…เจคเฉ‡ เจ‡เจธ เจ•เจฆเจฎ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเฉ‹.

เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹: เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ SSH GitLab เจตเจฟเฉฑเจš เจนเฉˆ, เจ“เจชเจจ SSH Pantheon เจตเจฟเฉฑเจš เจนเฉˆเฅค

เจ†เจ‰ เจ•เฉเจ เจนเฉ‹เจฐ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเฉ€เจเฅค เจชเจนเจฟเจฒเฉ‡ เจจเฉ‚เฉฐ PANTHEON_SITE เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจฎเฉเฉฑเจฒ เจคเฉเจนเจพเจกเฉ€ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจธเจพเจˆเจŸ เจฆเจพ เจจเจพเจฎ เจนเฉˆเฅค

เจฎเจธเจผเฉ€เจจ เจ‰เฉฑเจคเฉ‡ เจจเจพเจฎ เจ•เจฒเฉ‹เจจ เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ—เจฟเจŸ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฒเฉ‹เจจ เจ•เจฐ เจšเฉเฉฑเจ•เฉ‡ เจนเฉ‹, เจ‡เจธ เจฒเจˆ เจ‡เจน เจธเจฅเจพเจจเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฆเจพ เจจเจพเจฎ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจ…เฉฑเจ—เฉ‡, เจ†เจ‰ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเฉ€เจ 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 'เจคเฉ‡. เจ†เจ“ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ€เจเฅค

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจชเฉˆเจจเจฅเฉ€เจ“เจจ เจจเฉ‚เฉฐ เจฎเจฐเจœ เจฌเฉ‡เจจเจคเฉ€ เจฅเฉเจฐเฉˆเจก เจญเฉ‡เจœ เจฐเจฟเจนเจพ เจนเฉˆ

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจฎเฉ‡เจฐเฉ€ เจฎเจจเจชเจธเฉฐเจฆ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡ - เจฎเจฒเจŸเฉ€เจฆเฉ‡เจต, เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฎเฉฐเจ— 'เจคเฉ‡ เจ—เจฟเฉฑเจŸ เจธเจผเจพเจ–เจพเจตเจพเจ‚ เจฒเจˆ เจตเจพเจงเฉ‚ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฎเจฒเจŸเฉ€เจฆเฉ‡เจต เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจธเฉ€เจฎเจค เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ‡เจธ เจญเจพเจ— เจจเฉ‚เฉฐ เจ›เฉฑเจกเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจชเจฐ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเฉเฉฐเจš เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ GitLab เจฎเจฐเจœ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ 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เจฆเจฌเจพ เจ•เฉ‡ เจฎเจฟเจฒเจพเจจ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจฌเจฃเจพเจ“.

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจ‡เฉฑเจ• เจ…เจญเฉ‡เจฆ เจฌเฉ‡เจจเจคเฉ€ เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ CI/CD เจŸเจพเจธเจ• เจ•เจฟเจตเฉ‡เจ‚ เจšเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ deploy:multidev.

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจฆเฉ‡เจ–เฉ‹, เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจงเจพเจ—เจพ เจญเฉ‡เจœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ. เจชเจฐ เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจธเจพเจˆเจŸ เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก 'เจคเฉ‡ เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจธเฉˆเจ•เจธเจผเจจ 'เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ‰เฉฑเจฅเฉ‡ เจจเจตเจพเจ‚ เจตเจพเจคเจพเจตเจฐเจฃ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡เฅค

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจ†เจ“ เจ—เจฟเฉฑเจŸ เจฌเฉเจฐเจพเจ‚เจšเจพเจ‚ เจฆเฉ‡ เจญเจพเจ— เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ.

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจธเจพเจกเจพ เจงเจพเจ—เจพ mr-1 Pantheon เจจเฉ‚เฉฐ เจฎเจฟเจฒเฉ€. เจ†เจ‰ เจ‡เฉฑเจ• เจธเจผเจพเจ–เจพ เจคเฉ‹เจ‚ เจฎเจพเจนเฉŒเจฒ เจธเจฟเจฐเจœเฉ€เจ mr-1.

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพเจ‡เจ† เจนเฉˆ, เจนเฉเจฃ เจ†เจ“ เจ—เจฟเฉฑเจŸเจฒเฉˆเจฌ เจคเฉ‡ เจตเจพเจชเจธ เจšเฉฑเจฒเฉ€เจ เจ…เจคเฉ‡ เจญเจพเจ— เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ เจ“เจชเจฐเฉ‡เจธเจผเจจเจœเจผ > เจตเจพเจคเจพเจตเจฐเจจ. เจฒเจˆ เจเจ‚เจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡ dev ะธ mr-1.

เจ‡เจน เจ‡เจธ เจฒเจˆ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจเจ‚เจŸเจฐเฉ€ เจœเฉ‹เฉœเฉ€ เจนเฉˆ environment เจจเจพเจฎ เจจเจพเจฒ name ะธ url CI/CD เจ•เฉฐเจฎเจพเจ‚ เจตเจฟเฉฑเจšเฅค เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจ“เจชเจจ เจเจจเจตเจพเจ‡เจฐเจฎเฉˆเจ‚เจŸ เจ†เจˆเจ•เจจ 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจธเจพเจจเฉ‚เฉฐ เจชเฉˆเจจเจฅเฉ€เจ“เจจ 'เจคเฉ‡ เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจตเจพเจคเจพเจตเจฐเจจ เจฆเฉ‡ URL 'เจคเฉ‡ เจฒเจฟเจœเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจฎเจฒเจŸเฉ€เจฆเฉ‡เจต เจฆเฉ€ เจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจพเจฒเจค เจ•เจฐเฉ‹

เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจฅเฉ‡ เจฐเฉเจ• เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจนเจฐ เจ‡เฉฑเจ• เจ…เจญเฉ‡เจฆ เจฌเฉ‡เจจเจคเฉ€ เจฒเจˆ เจ‡เฉฑเจ• เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพเจ‰เจฃเจพ เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹, เจชเจฐ เจ‡เจน เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจธเจตเฉˆเจšเจฒเจฟเจค เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

Pantheon เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจŸเฉ‚เจฒ เจนเฉˆ เจŸเจฐเจฎเฉ€เจจเจฒ, เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ†เจชเจฃเฉ‡ เจ†เจช เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจŸเจฐเจฎเจฟเจจเจธ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจฎเจฒเจŸเฉ€เจกเฉ‡เจต เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ - เจฒเจˆ เจ†เจฆเจฐเจธเจผ เจ—เจฟเฉฑเจŸเจฒเจพเจฌ เจธเฉ€.เจ†เจˆ..

เจธเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจฎเจฐเจœ เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจธเจผเจพเจ–เจพ เจฌเจฃเจพเจˆเจ git checkout -b auto-multidev-creation.

GitLab CI/CD เจ•เฉฐเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจŸเจฐเจฎเจฟเจจเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเจฐเจฎเจฟเจจเจธ เจจเจพเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฒเจˆ เจ‡เฉฑเจ• เจฎเจธเจผเฉ€เจจ เจŸเฉ‹เจ•เจจ เจ…เจคเฉ‡ เจŸเจฐเจฎเจฟเจจเจธ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจฎเจธเจผเฉ€เจจ เจŸเฉ‹เจ•เจจ เจฌเจฃเจพเจ‰เจฃเจพ, เจ‡เจธ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฅเจพเจ‚ 'เจคเฉ‡ เจธเฉ‡เจต เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจจเจพเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ‡เจธ เจจเฉ‚เฉฐ GitLab เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ—เจฒเฉ‹เจฌเจฒ เจเจจเจตเจพเจ‡เจฐเจฎเฉˆเจ‚เจŸ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจœเฉ‹เจ‚ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ PANTHEON_MACHINE_TOKEN.

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจญเฉเฉฑเจฒ เจ—เจ เจนเฉ‹ เจ•เจฟ GitLab เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจœเฉ‹เฉœเจจเจพ เจนเฉˆ, เจคเจพเจ‚ เจตเจพเจชเจธ เจœเจพเจ“ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจนเฉˆ PANTHEON_SITE.

เจŸเจฐเจฎเฉ€เจจเจธ เจจเจพเจฒ เจ‡เฉฑเจ• เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฌเจฃเจพเจ‰เจฃเจพ

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจกเฉŒเจ•เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจœเจพเจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ Dockerfile, เจฎเฉ‡เจฐเจพ เจšเจฟเฉฑเจคเจฐ เจฒเจ“ registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest เจ…เจคเฉ‡ เจ‡เจธ เจญเจพเจ— เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเจ“เฅค

GitLab เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฌเจฃเจพ เจ…เจคเฉ‡ เจฐเฉฑเจ– เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ†เจ‰ เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจŸเจฐเจฎเจฟเจจเจธ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจกเฉŒเจ•เจฐเจซเจพเจˆเจฒ เจฌเจฃเจพเจˆเจเฅค

เจŸเจฐเจฎเจฟเจจเจธ เจ‡เฉฑเจ• PHP เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจŸเฉ‚เจฒ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ†เจ“ PHP เจšเจฟเฉฑเจคเจฐ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเฉ€เจเฅค เจฎเฉˆเจ‚ เจ•เฉฐเจชเฉ‹เจœเจผเจฐ เจฐเจพเจนเฉ€เจ‚ เจŸเจฐเจฎเจฟเจจเจธ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚, เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจตเจฐเจคเจพเจ‚เจ—เจพ เจ…เจงเจฟเจ•เจพเจฐเจค เจกเฉŒเจ•เจฐ เจ•เฉฐเจชเฉ‹เจœเจผเจฐ เจšเจฟเฉฑเจคเจฐ. เจ…เจธเฉ€เจ‚ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ Dockerfile เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจธเจฅเจพเจจเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš:

# Use the official Composer image as a parent image
FROM composer:1.8

# Update/upgrade apk
RUN apk update
RUN apk upgrade

# Make the Terminus directory
RUN mkdir -p /usr/local/share/terminus

# Install Terminus 2.x with Composer
RUN /usr/bin/env COMPOSER_BIN_DIR=/usr/local/bin composer -n --working-dir=/usr/local/share/terminus require pantheon-systems/terminus:"^2"

เจธเฉˆเจ•เจธเจผเจจ เจคเฉ‹เจ‚ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจ…เจคเฉ‡ เจญเฉ‡เจœเจฃ เจฒเจˆ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเฉ‹ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ“ เจ…เจคเฉ‡ เจชเฉเจธเจผ เจ•เจฐเฉ‹ ะฒ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจคเฉฑเจ• เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจฒเจˆ Dockerfile เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ GitLab เจตเจฟเฉฑเจš เจงเฉฑเจ•เฉ‹เฅค

เจธเฉˆเจ•เจธเจผเจจ เจ–เฉ‹เจฒเฉเจน เจฐเจฟเจนเจพ เจนเฉˆ เจฐเจœเจฟเจธเจŸเจฐเฉ€ GitLab เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš. เจœเฉ‡ เจธเจญ เจ•เฉเจ เจฏเฉ‹เจœเจจเจพ เจ…เจจเฉเจธเจพเจฐ เจนเฉ‹เจ‡เจ†, เจคเจพเจ‚ เจธเจพเจกเฉ€ เจคเจธเจตเฉ€เจฐ เจ‰เจฅเฉ‡ เจฐเจนเฉ‡เจ—เฉ€. เจšเจฟเฉฑเจคเจฐ เจŸเฉˆเจ— เจฒเจˆ เจ‡เฉฑเจ• เจฒเจฟเฉฐเจ• เจฒเจฟเจ–เฉ‹ - เจธเจพเจจเฉ‚เฉฐ เจซเจพเจˆเจฒ เจฒเจˆ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ .gitlab-ci.yml.

GitLab เจ…เจคเฉ‡ Pantheon เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจกเจฐเฉเจชเจฒ เจ…เจคเฉ‡ เจตเจฐเจกเจชเจฐเฉˆเจธ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจญเจพเจ— 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 เจจเฉ‚เฉฐ Pantheon เจจเจพเจฒ เจ†เจชเจฃเฉ‡ เจ†เจช เจ•เจจเฉˆเจ•เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ GitLab CI/CD เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจธเจพเจกเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจจเฉ‚เฉฐ เจตเจงเจฃ เจฒเจˆ เจœเจ—เฉเจนเจพ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจ เจตเจฟเจšเจพเจฐ เจนเจจ:

เจธเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเฉ‹ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ GitLab, Pantheon เจ…เจคเฉ‡ เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจฌเจพเจฐเฉ‡ เจ•เฉ€ เจธเฉ‹เจšเจฆเฉ‡ เจนเฉ‹เฅค

PS เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจŸเจฐเจฎเจฟเจจเจธ, เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจฆเจพ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจŸเฉ‚เจฒ, เจชเจฒเฉฑเจ—เจ‡เจจ เจฐเจพเจนเฉ€เจ‚ เจตเจงเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ?

เจ…เจธเฉ€เจ‚ Pantheon เจตเจฟเจ–เฉ‡ เจ†เจชเจฃเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ 2 'เจคเฉ‡ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ เจนเฉˆ เจŸเจฐเจฎเฉ€เจจเจธ เจฌเจฟเจฒเจก เจŸเฉ‚เจฒเจธ เจฒเจˆ เจชเจฒเฉฑเจ—เจ‡เจจ GitLab เจธเจนเจฟเจฏเฉ‹เจ— เจจเจพเจฒเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจนเจฐเฉ‡เจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเจพเจฒ เจชเจฐเฉ‡เจธเจผเจพเจจ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจธ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจ…เจœเจผเจฎเจพเจ“ เจ…เจคเฉ‡ v2 เจฌเฉ€เจŸเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเฉ‹เฅค เจŸเจฐเจฎเจฟเจจเจธ เจŸเฉ€เจฎ เจฒเจˆ build:project:create เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจชเฉˆเจ‚เจฅเฉ€เจ“เจจ เจŸเฉ‹เจ•เจจ เจ…เจคเฉ‡ เจ‡เฉฑเจ• GitLab เจŸเฉ‹เจ•เจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‰เจน เจ•เฉฐเจชเฉ‹เจœเจผเจฐ เจ…เจคเฉ‡ เจ†เจŸเฉ‹เจฎเฉ‡เจŸเจฟเจก เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจจเจฎเฉ‚เจจเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเฉ‡เจ—เฉ€, GitLab, เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ Pantheon เจธเจพเจˆเจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฌเจฃเจพเจเจ—เฉ€, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจ…เจคเฉ‡ SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเฉ‡เจ—เฉ€เฅค

เจฒเฉ‡เจ–เจ• เจฌเจพเจฐเฉ‡

เจเจ‚เจกเจฐเจฟเจŠ เจŸเฉ‡เจฒเจฐ เจตเจฟเฉฑเจš เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฒเจˆ เจŸเฉ‚เจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ Pantheon.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹