เช
เชฎเซ เช
เชฎเชพเชฐเชพ GitOps เชเซเชฒ เชตเชฟเชถเซ เชเช เชเชฐเชคเชพ เชตเชงเซ เชตเชพเชฐ เชตเชพเชค เชเชฐเซ เชเซเชเซเชฏเชพ เชเซเช.
เชธเชพเชเช เชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเซเชเชเชพเชเชฎเชพเช เชเชพเช: เชฌเชงเชพ เชธเชเชธเซเชเชฐเชฃเซ, เชชเซเชฐเชเชพเชถเชจเซ เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชธเชพเชฅเซเชจเชพ เชชเซเชทเซเช เซ เชตเชเซเชฐเซ เชฎเชพเชเซ เชเช เชธเชพเชฎเชพเชจเซเชฏ เชฎเซเชจเซ เชฌเชจเชพเชตเชตเซเช. - เช
เชฎเซ เชจเชนเซเช เชเชฐเซเช. เชคเซเชจเชพ เชฌเชฆเชฒเซ, เชเชพเชฒเซ เชเชคเชฟเชถเซเชฒ เชเชธเซเชฎเซเชฌเชฒเซเชจเชพ เชฎเซเชฆเซเชฆเชพเช เช
เชจเซ เชฒเชเซเชทเชฃเซ เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซเช เช
เชจเซ เชธเชพเชฅเซเชจเซ CI/CD เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช เชชเชฐ เชฅเซเชกเซเช เชงเซเชฏเชพเชจ เชเชชเซเช.
เชชเชฐเชฟเชเชฏ: เชธเชพเชเช เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ
เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, werf เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เชคเซเชจเชพ เชเซเชก เชธเชพเชฅเซ เชธเชเชเซเชฐเชนเชฟเชค เชเซ. เช เช เชฎเซเช เชตเชฟเชเชพเชธ เชเชฐเซเชฐเชฟเชฏเชพเชคเซ เชฒเชพเชฆเซ เชเซ เชเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เช เชฒเซเชเชจเชพ เช เชตเชเชพเชถเชจเซ เชฌเชนเชพเชฐ เชนเซเชฏ เชเซ, เชชเชฐเชเชคเซ เชเชเชพเชฎเชพเช เชเชเซเช เชเชตเซเช เชเชนเซ เชถเชเชพเชฏ เชเซ:
- เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชจเซ เช เชชเชกเซเช เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชจเชตเชพ werf เชซเชเชเซเชถเชจเซเชธ เชฐเชฟเชฒเซเช เชจ เชเชฐเชตเชพ เชเซเชเช เช เชจเซ เชคเซเชจเชพเชฅเซ เชตเชฟเชชเชฐเชฟเชค, เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชฎเชพเช เชเซเชเชชเชฃ เชซเซเชฐเชซเชพเชฐเซ เชตเชฐเซเชซเชจเชพ เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเชจเชพ เชชเซเชฐเชเชพเชถเชจเชจเซ เชธเซเชเชฟเชค เชเชฐเซ เชเซ;
- เชชเซเชฐเซเชเซเชเซเชเชฎเชพเช เชเชเชฆเชฎ เชธเชเชจ เชตเชฟเชเชพเชธ เชเซ: เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเซ เชฆเชฟเชตเชธเชฎเชพเช เชเชฃเซ เชตเชเชค เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ;
- เชฆเชธเซเชคเชพเชตเซเชเซเชจเชพ เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃ เชธเชพเชฅเซ เชธเชพเชเชเชจเซ เชเชฎเชพเชตเชตเชพ เชฎเชพเชเซ เชเซเชเชชเชฃ เชฎเซเชจเซเชฏเซเช เชฒ เชเชพเชฎเชเซเชฐเซ เชเชเชพเชฎเชพเช เชเชเซ เชเชเชเชพเชณเชพเชเชจเช เชเซ;
- เชชเซเชฐเซเชเซเชเซเช เชธเชฟเชฎเซเชจเซเชเซเช เช
เชญเชฟเชเชฎ เช
เชชเชจเชพเชตเซ เชเซ
เชธเชเชธเซเชเชฐเชฃ , 5 เชธเซเชฅเชฟเชฐเชคเชพ เชเซเชจเชฒเซ เชธเชพเชฅเซ. เชชเซเชฐเชเชพเชถเชจ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เชธเซเชฅเชฟเชฐเชคเชพ เชตเชงเชพเชฐเชตเชพ เชฎเชพเชเซ เชเซเชจเชฒเซ เชฆเซเชตเชพเชฐเชพ เชเชตเซเชคเซเชคเชฟเชเชจเชพ เชเซเชฐเชฎเชฟเช เชฎเชพเชฐเซเชเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ: เชเชฒเซเชซเชพเชฅเซ เชฐเซเช-เชธเซเชฒเชฟเชก เชธเซเชงเซ; - เชธเชพเชเชเชฎเชพเช เชฐเชถเชฟเชฏเชจ-เชญเชพเชทเชพเชจเซเช เชธเชเชธเซเชเชฐเชฃ เชเซ, เชเซ เชฎเซเชเซเชฏ (เชเชเชฒเซ โโโโเชเซ, เช เชเชเซเชฐเซเชเซ-เชญเชพเชทเชพ) เชธเชเชธเซเชเชฐเชฃเชจเซ เชธเชฎเชพเชเชคเชฐเชฎเชพเช "เชเซเชตเชเชค เช เชจเซ เชตเชฟเชเชพเชธ เชเชฐเซ เชเซ" (เชเชเชฒเซ โโโโเชเซ, เชเซเชจเซ เชธเชพเชฎเชเซเชฐเซ เช เชชเชกเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ).
เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชชเชพเชธเซเชฅเซ เช เชฌเชงเซเช "เชเชเชคเชฐเชฟเช เชฐเชธเซเชกเซเช" เชเซเชชเชพเชตเชตเชพ เชฎเชพเชเซ, เชคเซเชจเซ "เชซเชเซเชค เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ" เชเชตเซ เชเชเชเช เชเชซเชฐ เชเชฐเซ, เช
เชฎเซ เชเชฐเซเชฏเซเช เช
เชฒเช เชตเซเชฐเซเชซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เช
เชจเซ เช
เชชเชกเซเช เชเซเชฒ เชเซ
เชตเซเชฌเชธเชพเชเช เชชเชฐ เชตเชฐเซเชเชจ เชธเชฟเชฒเซเชเซเชถเชจ เชฎเซเชจเซเชฎเชพเช, เชฆเชฐเซเช เชเซเชจเชฒเชฎเชพเช werf เชจเชพ เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃเซ เชเชชเชฒเชฌเซเชง เชเซ. เชฎเซเชณเชญเซเชค เชฐเซเชคเซ, เชธเชฐเชจเชพเชฎเชพ เชฆเซเชตเชพเชฐเชพ
เชเซเชฒเชฎเชพเช, เชธเชพเชเชเชฎเชพเช เชจเซเชเซเชจเชพ เชธเชเชธเซเชเชฐเชฃเซ เชเชชเชฒเชฌเซเชง เชเซ:
- เชฐเซเช (เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ เชเซเชฒเซ เชเซ),
- เชฆเชฐเซเช เชชเซเชฐเชเชพเชถเชจเชจเซ เชฆเชฐเซเช เชธเชเซเชฐเชฟเชฏ เช
เชชเชกเซเช เชเซเชจเชฒ เชฎเชพเชเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ,
werf.io/v1.0-beta ).
เชธเชพเชเชเชจเซเช เชตเชฟเชถเชฟเชทเซเช เชธเชเชธเซเชเชฐเชฃ เชเชจเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซ เชชเซเชฐเชคเซเช เชเซ /docs
werf เชฐเซเชชเซเชเซเชเชฐเซ เช
เชจเซเชฐเซเชช เชเชฆเซเชถ (jekyll build
), เชเชฐเซเชฐเซ เชธเชเชธเซเชเชฐเชฃเชจเชพ Git เชเซเช เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซเชฏเชพ เชชเชเซ.
เชคเซ เชซเชเซเชค เชเชฎเซเชฐเชตเชพเชจเซเช เชฌเชพเชเซ เชเซ:
- เชเชชเชฏเซเชเชฟเชคเชพ เชชเซเชคเซ (werf) เชเชธเซเชฎเซเชฌเชฒเซ เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ;
- CI/CD เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช GitLab CI เชจเชพ เชเชงเชพเชฐเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ;
- เช เชจเซ เช เชฌเชงเซเช, เช เชฒเชฌเชคเซเชค, เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชเชพเชฒเซ เชเซ.
เชเชพเชฐเซเชฏเซ
เชนเชตเซ เชเชพเชฒเซ เชเชตเชพ เชเชพเชฐเซเชฏเซเชจเซ เชฐเชเชจเชพ เชเชฐเซเช เชเซ เชตเชฐเซเชฃเชตเซเชฒ เชคเชฎเชพเชฎ เชตเชฟเชถเชฟเชทเซเชเชคเชพเชเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซ เชเซ:
- เชเซเชเชชเชฃ เช เชชเชกเซเช เชเซเชจเชฒ เชชเชฐ werf เชธเชเชธเซเชเชฐเชฃ เชฌเชฆเชฒเซเชฏเชพ เชชเชเซ เชธเชพเชเช เชชเชฐ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เชเชชเชฎเซเชณเซ เช เชชเชกเซเช เชฅเชตเซเช เชเซเชเช.
- เชตเชฟเชเชพเชธ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชเซเชฏเชพเชฐเซเช เชธเชเซเชทเชฎ เชนเซเชตเซเช เชเชฐเซเชฐเซ เชเซ เชธเชพเชเชเชจเชพ เชชเซเชฐเซเชตเชพเชตเชฒเซเชเชจ เชธเชเชธเซเชเชฐเชฃเซ เชเซเช.
เชธเชเชฌเชเชงเชฟเชค เชเชฟเช เชเซ เชเซเชธเชฎเชพเชเชฅเซ เชเซเชเชชเชฃ เชเซเชจเชฒ เชชเชฐ เชธเชเชธเซเชเชฐเชฃ เชฌเชฆเชฒเซเชฏเชพ เชชเชเซ เชธเชพเชเชเชจเซ เชซเชฐเซเชฅเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเซ เชเชตเชถเซเชฏเช เชเซ, เชชเชฐเชเชคเซ เชเชฌเซ เชฌเชจเชพเชตเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เช เชฎเชจเซ เชจเซเชเซเชจเซ เชธเซเชตเชฟเชงเชพเช เชฎเชณเชถเซ:
- เชเซเชจเชฒเซ เชชเชฐเชจเชพ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชฌเชฆเชฒเชพเชคเซ เชนเซเชตเชพเชฅเซ, เชเซเชฏเชพเช เชธเชเชธเซเชเชฐเชฃ เชฌเชฆเชฒเชพเชฏเซเช เชเซ เชคเซ เชเซเชจเชฒเซ เชฎเชพเชเซเชจเชพ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชจเซ เชซเชฐเซเชฅเซ เชฌเชจเชพเชตเชตเซเช เชเชฐเซเชฐเซ เชเซ. เชเซเชตเชเซ, เชฌเชงเซเช เชซเชฐเซเชฅเซ เชฌเชจเชพเชตเชตเซเช เช เชเซเชฌ เชธเชฐเชธ เชจเชฅเซ.
- เชฐเชฟเชฒเซเช เชฎเชพเชเซ เชเซเชจเชฒเซเชจเซ เชธเซเช เชฌเชฆเชฒเชพเช เชถเชเซ เชเซ. เช เชฎเซเช เชธเชฎเชฏเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชจเชฒเซ เชชเชฐ เชชเซเชฐเชพเชฐเชเชญเชฟเช-เชเชเซเชธเซเชธ 1.1 เชชเซเชฐเชเชพเชถเชจ เชเชฐเชคเชพเช เชตเชงเซ เชธเซเชฅเชฟเชฐ เชธเชเชธเซเชเชฐเชฃ เชจ เชนเซเช เชถเชเซ, เชชเชฐเชเชคเซ เชธเชฎเชฏ เชเชคเชพเช เชคเซ เชฆเซเชเชพเชถเซ - เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชคเชฎเชพเชฐเซ เชเชธเซเชฎเซเชฌเชฒเซ เชเชพเชคเซ เช เชฌเชฆเชฒเชตเซ เชจ เชเซเชเช?
เชคเซ เชคเชพเชฐเชฃ เชเชชเซ เชเซ เชเซ เชเชธเซเชฎเซเชฌเชฒเซ เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชฌเชฆเชฒเชตเชพ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซ เชเซ.
ะ ะตะฐะปะธะทะฐัะธั
เชเช เช เชญเชฟเชเชฎ เชชเชธเชเชฆ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เชตเซเชเชฒเซเชชเชฟเช เชฐเซเชคเซ, เชคเชฎเซ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชฆเชฐเซเช เชเชฐเซเชฐเซ เชธเชเชธเซเชเชฐเชฃเชจเซ เช เชฒเช เชชเซเชก เชคเชฐเซเชเซ เชเชฒเชพเชตเซ เชถเชเซ เชเซ. เช เชตเชฟเชเชฒเซเชช เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชเชฌเซเชเซเชเซเช เชธเซเชเชตเซ เชเซ, เชเซ เชธเซเชฅเชฟเชฐ เชตเชฐเซเชซ เชฐเชฟเชฒเซเชเชจเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชตเชงเชพเชฐเซ เชธเชพเชฅเซ เชตเชงเชถเซ. เช เชจเซ เช, เชฌเชฆเชฒเชพเชฎเชพเช, เชตเชงเซ เชเชเชฟเชฒ เชเชพเชณเชตเชฃเซ เชธเซเชเชตเซ เชเซ: เชฆเชฐเซเช เชธเชเชธเซเชเชฐเชฃเชจเซเช เชชเซเชคเชพเชจเซเช HTTP เชธเชฐเซเชตเชฐ เชนเซเชฏ เชเซ, เช เชจเซ เชจเชพเชจเชพ เชฒเซเชก เชธเชพเชฅเซ. เช เชฒเชฌเชคเซเชค, เชเชฎเชพเช เชตเชงเซ เชธเชเชธเชพเชงเชจ เชเชฐเซเช เชชเชฃ เชธเชพเชฎเซเชฒ เชเซ.
เช เชฎเซ เช เช เชฐเชธเซเชคเซ เช เชชเชจเชพเชตเซเชฏเซ เชฌเชงเชพ เชเชฐเซเชฐเซ เชตเชฐเซเชเชจเชจเซ เชเช เชเชฎเซเชเชฎเชพเช เชเชธเซเชฎเซเชฌเชฒ เชเชฐเชตเซเช. เชธเชพเชเชเชจเชพ เชคเชฎเชพเชฎ เชธเชเชธเซเชเชฐเชฃเซเชจเชพ เชธเชเชเชฒเชฟเชค เชธเซเชเซเชเชฟเชเซเชธ NGINX เชธเชพเชฅเซเชจเชพ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชธเซเชฅเชฟเชค เชเซ, เช เชจเซ เช เชจเซเชฐเซเชช เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชชเชฐ เชเซเชฐเชพเชซเชฟเช NGINX เชเชจเซเชเซเชฐเซเชธ เชฆเซเชตเชพเชฐเชพ เชเชตเซ เชเซ. เชเช เชธเชฐเชณ เชฎเชพเชณเชเซเช - เชเช เชธเซเชเซเชเชฒเซเชธ เชเชชเซเชฒเชฟเชเซเชถเชจ - เชคเชฎเชจเซ เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชฐเชณเชคเชพเชฅเซ เชเชฎเชพเชตเช (เชฒเซเชก เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซเชจเซ) เชฎเชพเชชเชตเชพ เชฎเชพเชเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ.
เชตเชงเซ เชเซเชเซเชเชธ เชฅเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชฌเซ เชเชฌเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช: เชเช เชเชคเซเชชเชพเชฆเชจ เชธเชฐเซเชเชฟเช เชฎเชพเชเซ, เชฌเซเชเซ เชฆเซเชต เชธเชฐเซเชเชฟเช เชฎเชพเชเซ เชตเชงเชพเชฐเชพเชจเซ เชเซ. เชตเชงเชพเชฐเชพเชจเซ เชเชฎเซเชเชจเซ เชเชชเชฏเซเช เชฎเซเชเซเชฏ เชธเชพเชฅเซ เชฎเชพเชคเซเชฐ เชกเซเชต เชธเชฐเซเชเชฟเช เชชเชฐ เชฅเชพเชฏ เชเซ (เชฒเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ) เช เชจเซ เชคเซเชฎเชพเช เชฐเชฟเชตเซเชฏเซ เชเชฎเชฟเชเชฎเชพเชเชฅเซ เชธเชพเชเชเชจเซเช เชตเชฐเซเชเชจ เชนเซเชฏ เชเซ, เช เชจเซ เชคเซเชฎเชจเซ เชตเชเซเชเซ เชฐเซเชเซเชเช เชเชจเซเชเซเชฐเซเชธ เชธเชเชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
werf vs git เชเซเชฒเซเชจ เช เชจเซ เชเชฐเซเชเชฟเชซเซเชเซเชเซเชธ
เชชเชนเซเชฒเซเชฅเซ เช เชเชฒเซเชฒเซเช เชเชฐเซเชฏเซ เชเซ เชคเซเชฎ, เชฆเชธเซเชคเชพเชตเซเชเซเชจเชพ เชเซเชเซเชเชธ เชธเชเชธเซเชเชฐเชฃ เชฎเชพเชเซ เชธเชพเชเช เชธเซเชเซเชเชฟเชเซเชธ เชเชจเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชฏเซเชเซเชฏ เชฐเซเชชเซเชเซเชเชฐเซ เชเซเช เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซเชจเซ เชฌเชฟเชฒเซเชก เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชคเชฎเซ เชฆเชฐเซเช เชตเชเชคเซ เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชฌเชฟเชฒเซเชก เชเชฐเซ เชคเซเชฏเชพเชฐเซ เชฐเซเชชเซเชเซเชเชฐเซเชจเซ เชเซเชฒเซเชจ เชเชฐเซเชจเซ เชชเชฃ เชเชฐเซ เชถเชเซ เชเซ, เชฏเชพเชฆเซเชฎเชพเชเชฅเซ เชฏเซเชเซเชฏ เชเซ เชเซเชธ เชชเชธเชเชฆ เชเชฐเซเชจเซ. เชเซ เชเซ, เช เชเช เชเชเซเชฏเชพเช เชธเชเชธเชพเชงเชจ-เชธเชเชจ เชเชพเชฎเชเซเชฐเซ เชเซ เช เชจเซ เชตเชงเซเชฎเชพเช, เชฌเชฟเชจ-เชคเซเชเซเช เชธเซเชเชจเชพเช เชฒเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ... เชฌเซเชเซ เชเชเชญเซเชฐ เชเซเชฐเชฒเชพเชญ เช เชเซ เชเซ เช เช เชญเชฟเชเชฎ เชธเชพเชฅเซ เชเชธเซเชฎเซเชฌเชฒเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชเชเช เชเซเชถ เชเชฐเชตเชพเชจเซ เชเซเช เชฐเซเชค เชจเชฅเซ.
เช
เชนเซเช werf เชเชชเชฏเซเชเชฟเชคเชพ เชชเซเชคเซ เช เช
เชฎเชพเชฐเซ เชธเชนเชพเชฏ เชฎเชพเชเซ เชเชตเซ เชเซ, เช
เชฎเชฒเซเชเชฐเชฃ เชเชฐเซ เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชถเซเชเช เช
เชจเซ เชคเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ fetch
เชเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซ. เชตเชงเซเชฎเชพเช, เชฐเซเชชเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ เชกเซเชเชพ เชเชฎเซเชฐเชคเซ เชตเชเชคเซ, เช
เชฎเซ เชซเชเซเชค เชเชฐเซเชฐเซ เชกเชฟเชฐเซเชเซเชเชฐเซเช เช เชชเชธเชเชฆ เชเชฐเซ เชถเชเซเช เชเซเช (เช
เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เช เชกเชฟเชฐเซเชเซเชเชฐเซ เชเซ. docs
), เชเซ เชเชฎเซเชฐเชพเชฏเซเชฒ เชกเซเชเชพเชจเซ เชฎเชพเชคเซเชฐเชพเชฎเชพเช เชจเซเชเชงเชชเชพเชคเซเชฐ เชเชเชพเชกเซ เชเชฐเชถเซ.
เชเซเชเชฟเชฒ เช เชธเซเชเซเชเชฟเช เชกเซเชเชพเชจเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชเช เชธเชพเชงเชจ เชเซ เช
เชจเซ เช
เชเชคเชฟเชฎ เชเชฎเซเชเชฎเชพเช เชคเซเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชคเซเชฅเซ เชคเซเชฎเชพเช เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเซเช เชคเชพเชฐเซเชเชฟเช เชฐเชนเซเชถเซ.
เช เชฎเซ werf.yaml เชฒเชเซเช เชเซเช
เชคเซเชฅเซ, เช เชฎเซ เชจเชเซเชเซ เชเชฐเซเชฏเซเช เชเซ เช เชฎเซ เชฆเชฐเซเช เชตเชฐเซเชเชจเชจเซ เชเช เช เชฒเช เชตเชฐเซเชซ เชเชฐเซเชเชฟเชซเซเชเซเชเชฎเชพเช เชเชฎเซเชชเชพเชเชฒ เชเชฐเซเชถเซเช. เชเซ เชเซ เช เชฎเซ เช เชฎเชจเซ เชเชฌเชฐ เชจเชฅเซ เชเซ เชเชธเซเชฎเซเชฌเชฒเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชฎเชพเชเชฅเซ เชเซเชเชฒเซ เชเชฒเชพเชเซเชคเชฟเช เชนเชถเซ, เชคเซเชฅเซ เช เชฎเซ เชจเชฟเชถเซเชเชฟเชค เชฌเชฟเชฒเซเชก เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชฒเชเซ เชถเชเชคเชพ เชจเชฅเซ (เชธเชเชค เชฐเซเชคเซ เชเชนเซเช เชคเซ, เช เชฎเซ เชนเชเซ เชชเชฃ เชเชฐเซ เชถเชเซเช เชเซเช, เชชเชฐเชเชคเซ เชคเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เช เชธเชฐเชเชพเชฐเช เชฐเชนเซเชถเซ เชจเชนเซเช).
werf เชคเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ werf.yaml
), เช
เชจเซ เช เชคเซ เชถเชเซเชฏ เชฌเชจเชพเชตเซ เชเซ เชซเซเชฒเชพเชฏ เชชเชฐ เชฐเซเชชเชฐเซเชเชพ เชฌเชจเชพเชตเซ เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซเชจเซ (เชคเชฎเชจเซ เชถเซเช เชเซเชเช เชเซ!). เช
เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชฌเชพเชนเซเชฏ เชกเซเชเชพ เช เชธเชเชธเซเชเชฐเชฃเซ เช
เชจเซ เชชเซเชฐเชเชพเชถเชจเซ เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชเซ, เชเซเชจเชพ เชเชงเชพเชฐเซ เช
เชฎเซ เชเชฐเซเชฐเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชเชฐเซเชเชฟเชซเซเชเซเชเซเชธ เชเชเชคเซเชฐเชฟเชค เชเชฐเซเช เชเซเช เช
เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เช
เชฎเซ เชฌเซ เชเชฌเซเช เชฎเซเชณเชตเซเช เชเซเช: werf-doc
ะธ werf-dev
เชตเชฟเชตเชฟเชง เชธเชฐเซเชเชฟเช เชชเชฐ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ.
เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ เชฆเซเชตเชพเชฐเชพ เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ. เช เชนเซเช เชคเซเชฎเชจเซ เชฐเชเชจเชพ เชเซ:
-
RELEASES
- เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชฎเซเชฒเซเชฏเซเชจเซ เชเชเซเชฏเชพ-เชตเชฟเชญเชพเชเชฟเชค เชธเซเชเชฟเชจเชพ เชธเซเชตเชฐเซเชชเชฎเชพเช, เชชเซเชฐเชเชพเชถเชจเซเชจเซ เชธเซเชเชฟ เช เชจเซ เชตเชฐเซเชซเชจเชพ เช เชจเซเชฐเซเชช เชตเชฐเซเชคเชฎเชพเชจ เชธเชเชธเซเชเชฐเชฃ เชธเชพเชฅเซเชจเซ เชเช เชฐเซเชเชพ<ะะะะะ _ะ ะะะะะ>%<ะะะะะ _ะะะ ะกะะ>
. เชเชฆเชพเชนเชฐเชฃ:1.0%v1.0.4-beta.20
-
CHANNELS
- เชเซเชจเชฒเซเชจเซ เชธเซเชเชฟ เช เชจเซ werf เชจเชพ เช เชจเซเชฐเซเชช เชตเชฐเซเชคเชฎเชพเชจ เชธเชเชธเซเชเชฐเชฃ เชธเชพเชฅเซเชจเซ เชเช เชฐเซเชเชพ, เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชฎเซเชฒเซเชฏเซเชจเซ เชเชเซเชฏเชพ-เชตเชฟเชญเชพเชเชฟเชค เชธเซเชเชฟเชจเชพ เชธเซเชตเชฐเซเชชเชฎเชพเช<ะะะะะ>%<ะะะะะ _ะะะ ะกะะ>
. เชเชฆเชพเชนเชฐเชฃ:1.0-beta%v1.0.4-beta.20 1.0-alpha%v1.0.5-alpha.22
-
ROOT_VERSION
โ เชธเชพเชเช เชชเชฐ เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ werf เชฐเชฟเชฒเซเช เชธเชเชธเซเชเชฐเชฃ (เชคเซ เชนเชเชฎเซเชถเชพ เชเชเซเชเชคเชฎ เชชเซเชฐเชเชพเชถเชจ เชจเชเชฌเชฐ เชฆเซเชตเชพเชฐเชพ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเซเช เชเชฐเซเชฐเซ เชจเชฅเซ). เชเชฆเชพเชนเชฐเชฃ:v1.0.4-beta.20
-
REVIEW_SHA
- เชธเชฎเซเชเซเชทเชพ เชเชฎเชฟเชเชจเซ เชนเซเชถ เชเซเชฎเชพเชเชฅเซ เชคเชฎเชพเชฐเซ เชชเชฐเซเชเซเชทเชฃ เชฒเซเชช เชฎเชพเชเซ เชธเชเชธเซเชเชฐเชฃ เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชเชฒเซ GitLab CI เชชเชพเชเชชเชฒเชพเชเชจเชฎเชพเช เชญเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชจเซ เชจเซเชเซ เชฌเชฐเชพเชฌเชฐ เชเซเชตเซ เชฐเซเชคเซ เชฒเชเชพเชฏเซเชฒ เชเซ.
เชธเซ เชชเซเชฐเชฅเชฎ, เชธเชเชตเชก เชฎเชพเชเซ, เช
เชฎเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซเช เชเซเช werf.yaml
เชเซเชฎเซเชชเชฒเซเช เชตเซเชฐเซเชเชฌเชฒ เชชเชฐ เชเชพเช, เชคเซเชฎเชจเซ เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเช เชตเซเชฐเชฟเชฏเซเชฌเชฒเซเชธเชฎเชพเชเชฅเซ เชฎเซเชฒเซเชฏเซ เช
เชธเชพเชเชจ เชเชฐเซ:
{{ $_ := set . "WerfVersions" (cat (env "CHANNELS") (env "RELEASES") | splitList " ") }}
{{ $Root := . }}
{{ $_ := set . "WerfRootVersion" (env "ROOT_VERSION") }}
{{ $_ := set . "WerfReviewCommit" (env "REVIEW_SHA") }}
เชธเชพเชเชเชจเชพ เชธเซเชเซเชเชฟเช เชตเชฐเซเชเชจเชจเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชเชฐเซเชเชฟเชซเซเชเซเชเชจเซเช เชตเชฐเซเชฃเชจ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเชชเชฃเชจเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซเชตเชพ เชคเชฎเชพเชฎ เชเซเชธเซ เชฎเชพเชเซ เชธเชฎเชพเชจ เชนเซเชฏ เชเซ (เชฐเซเช เชตเชฐเซเชเชจ เชเชจเชฐเซเช เชเชฐเชตเชพ, เชคเซเชฎเช เชกเซเชต เชธเชฐเซเชเชฟเช เชฎเชพเชเซเชจเชพ เชตเชฐเซเชเชจ เชธเชนเชฟเชค). เชคเซเชฅเซ, เชเชชเชฃเซ เชคเซเชจเซ เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช
เชฒเช เชฌเซเชฒเซเชเชฎเชพเช เชเชธเซเชกเซเชถเซเช define
- เช
เชจเซเชเชพเชฎเซ เชชเซเชจเชเชเชชเชฏเซเช เชฎเชพเชเซ include
. เช
เชฎเซ เชจเซเชเซเชจเซ เชฆเชฒเซเชฒเซ เชจเชฎเซเชจเชพ เชชเชฐ เชชเชธเชพเชฐ เชเชฐเซเชถเซเช:
-
Version
- เชเชจเชฐเซเช เชเชฐเซเชฒ เชธเชเชธเซเชเชฐเชฃ (เชเซเช เชจเชพเชฎ); -
Channel
โ เช เชชเชกเซเช เชเซเชจเชฒเชจเซเช เชจเชพเชฎ เชเซ เชเซเชจเชพ เชฎเชพเชเซ เชเชฐเซเชเชฟเชซเซเชเซเช เชเชจเชฐเซเช เชฅเชพเชฏ เชเซ; -
Commit
โ เชเชฎเซเช เชนเซเชถ, เชเซ เชเชฐเซเชเชฟเชซเซเชเซเช เชธเชฎเซเชเซเชทเชพ เชเชฎเชฟเช เชฎเชพเชเซ เชเชจเชฐเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ; - เชธเชเชฆเชฐเซเชญ.
เชเชฐเซเชเชฟเชซเซเชเซเช เชเซเชฎเซเชชเชฒเซเช เชตเชฐเซเชฃเชจ
{{- define "doc_artifact" -}}
{{- $Root := index . "Root" -}}
artifact: doc-{{ .Channel }}
from: jekyll/builder:3
mount:
- from: build_dir
to: /usr/local/bundle
ansible:
install:
- shell: |
export PATH=/usr/jekyll/bin/:$PATH
- name: "Install Dependencies"
shell: bundle install
args:
executable: /bin/bash
chdir: /app/docs
beforeSetup:
{{- if .Commit }}
- shell: echo "Review SHA - {{ .Commit }}."
{{- end }}
{{- if eq .Channel "root" }}
- name: "releases.yml HASH: {{ $Root.Files.Get "releases.yml" | sha256sum }}"
copy:
content: |
{{ $Root.Files.Get "releases.yml" | indent 8 }}
dest: /app/docs/_data/releases.yml
{{- else }}
- file:
path: /app/docs/_data/releases.yml
state: touch
{{- end }}
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/
- /app/ru_site/
- file:
dest: /app/docs/pages_ru/cli
state: link
src: /app/docs/pages/cli
- shell: |
echo -e "werfVersion: {{ .Version }}nwerfChannel: {{ .Channel }}" > /tmp/_config_additional.yml
export PATH=/usr/jekyll/bin/:$PATH
{{- if and (ne .Version "review") (ne .Channel "root") }}
{{- $_ := set . "BaseURL" ( printf "v%s" .Channel ) }}
{{- else if ne .Channel "root" }}
{{- $_ := set . "BaseURL" .Channel }}
{{- end }}
jekyll build -s /app/docs -d /app/_main_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/tmp/_config_additional.yml
jekyll build -s /app/docs -d /app/_ru_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/app/docs/_config_ru.yml,/tmp/_config_additional.yml
args:
executable: /bin/bash
chdir: /app/docs
git:
- url: https://github.com/flant/werf.git
to: /app/
owner: jekyll
group: jekyll
{{- if .Commit }}
commit: {{ .Commit }}
{{- else }}
tag: {{ .Version }}
{{- end }}
stageDependencies:
install: ['docs/Gemfile','docs/Gemfile.lock']
beforeSetup: '**/*'
includePaths: 'docs'
excludePaths: '**/*.sh'
{{- end }}
เชเชฐเซเชเชฟเชซเซเชเซเชเชจเซเช เชจเชพเชฎ เช
เชจเชจเซเชฏ เชนเซเชตเซเช เชเซเชเช. เช
เชฎเซ เช เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเซเช เชเซเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชจเชฒเชจเซเช เชจเชพเชฎ เชเชฎเซเชฐเซเชจเซ (เชเชฒเชจเซเช เชฎเซเชฒเซเชฏ .Channel
) เชเชฐเซเชเชฟเชซเซเชเซเชเชจเชพ เชจเชพเชฎเชจเชพ เชชเซเชฐเชคเซเชฏเชฏ เชคเชฐเซเชเซ: artifact: doc-{{ .Channel }}
. เชชเชฐเชเชคเซ เชคเชฎเชพเชฐเซ เช เชธเชฎเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชเชฒเชพเชเซเชคเชฟเชเชฎเชพเชเชฅเซ เชเชฏเชพเชค เชเชฐเชคเซ เชตเชเชคเซ, เชคเชฎเชพเชฐเซ เชธเชฎเชพเชจ เชจเชพเชฎเซเชจเซ เชธเชเชฆเชฐเซเชญ เชฒเซเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ.
เชเชฐเซเชเชฟเชซเซเชเซเชเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชคเซ เชตเชเชคเซ, เชจเซเชเซเชจเซ เชตเชฐเซเชซ เชธเซเชตเชฟเชงเชพเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ: build_dir
เชคเชฎเชจเซ เชเซเชเชฟเชฒ เชเซเชถเชจเซ เชชเชพเชเชชเชฒเชพเชเชจ เชฐเชจ เชตเชเซเชเซ เชธเชพเชเชตเชตเชพ เชฆเซ เชเซ, เชเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชซเชฐเซเชฅเซ เชเชธเซเชฎเซเชฌเชฒเซเชจเซ เชเชกเชช เชตเชงเซ เชเซ.
เชคเชฎเซ เชซเชพเชเชฒเชจเซ เชเชชเชฏเซเช เชชเชฃ เชจเซเชเชงเซเชฏเซ เชนเชถเซ releases.yml
เชเช YAML เชซเชพเชเชฒ เชเซ เชเซเชฎเชพเช เชฐเซเชฒเซเช เชกเซเชเชพเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
เช เชถเชฐเชคเซ เชจเชฟเชตเซเชฆเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ if
เชจเชฎเซเชจเชพเช เช
เชจเซ เชกเชฟเชเชพเชเชจ เชชเชฐ เชเชพเช {{ $Root.Files.Get "releases.yml" | sha256sum }}
เชคเชฌเชเซเชเชพเชฎเชพเช .Channel
เชฌเชฐเชพเชฌเชฐ เชเซ root
) เชซเชพเชเชฒ เชนเซเชถ releases.yml
เชธเชฎเชเซเชฐ เชคเชฌเชเซเชเชพเชจเชพ เชนเชธเซเชคเชพเชเซเชทเชฐเชจเซ เช
เชธเชฐ เชเชฐเซ เชเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชเชตเชพเชฌเซ เชเชพเชฐเซเชฏเชจเชพ เชจเชพเชฎเชจเซ เชญเชพเช เชเซ (เชชเซเชฐเชพเชฎเซเชเชฐ name
). เชเชฎ, เชเซเชฏเชพเชฐเซ เชฌเชฆเชฒเชพเชฏ เชเซ เชธเชพเชฎเชเซเชฐเซ เชซเชพเชเชฒ releases.yml
เช
เชจเซเชฐเซเชช เชเชฐเซเชเชฟเชซเซเชเซเช เชซเชฐเซเชฅเซ เชเชธเซเชฎเซเชฌเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเซเชชเชพ เชเชฐเซเชจเซ เชฌเชพเชนเซเชฏ เชญเชเชกเชพเชฐ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชชเชฐ เชชเชฃ เชงเซเชฏเชพเชจ เชเชชเซ. เชฎเชพเชเชฅเซ เชเชฐเซเชเชฟเชซเซเชเซเชเชจเซ เชเชฌเซเชฎเชพเช /docs
, เช
เชจเซ เชชเชพเชธ เชเชฐเซเชฒเชพ เชชเชฐเชฟเชฎเชพเชฃเซเชจเชพ เชเชงเชพเชฐเซ, เชเชฐเซเชฐเซ เชเซเช เช
เชฅเชตเชพ เชธเชฎเซเชเซเชทเชพ เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพเชจเซ เชกเซเชเชพ เชคเชฐเชค เช เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเซเชจเชฒเซ เช
เชจเซ เชฐเชฟเชฒเซเชเชจเชพ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชธเชเชธเซเชเชฐเชฃเซเชจเชพ เชเชฐเซเชเชฟเชซเซเชเซเชเชจเซเช เชตเชฐเซเชฃเชจ เชเชจเชฐเซเช เชเชฐเชตเชพ เชเชฐเซเชเชฟเชซเซเชเซเช เชจเชฎเซเชจเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เช
เชฎเซ เชตเซเชฐเซเชเชฌเชฒ เชชเชฐ เชฒเซเชช เชเซเช เชตเซเช เชเซเช .WerfVersions
ะฒ werf.yaml
:
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ dict "Version" $VersionsDict._1 "Channel" $VersionsDict._0 "Root" $Root | include "doc_artifact" }}
---
{{ end -}}
เชเชพเชฐเชฃ เชเซ เชฒเซเชช เช
เชจเซเช เชเชฐเซเชเชฟเชซเซเชเซเชเซเชธ เชเชจเชฐเซเช เชเชฐเชถเซ (เช
เชฎเซ เชเชถเชพ เชฐเชพเชเซเช เชเซเช), เชคเซเชฎเชจเซ เชตเชเซเชเซเชจเชพ เชตเชฟเชญเชพเชเชเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเซเช เชเชฐเซเชฐเซ เชเซ - เชเซเชฐเชฎ ---
(เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชธเชฟเชจเซเชเซเชเซเชธ เชชเชฐ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ เชฎเชพเชเซ, เชเซเช
เช เช เชฐเซเชคเซ, เชชเชฐเชเชคเซ เชฒเซเชช เชตเชฟเชจเชพ, เช เชฎเซ เชเชฐเซเชเชฟเชซเซเชเซเช เชเซเชฎเซเชชเชฒเซเชเชจเซ "เชตเชฟเชถเซเชท เชเซเชธ" เชฎเชพเชเซ เชเชนเซเช เชเซเช: เชฐเซเช เชธเชเชธเซเชเชฐเชฃ เชฎเชพเชเซ, เชคเซเชฎเช เชธเชฎเซเชเซเชทเชพ เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพเชฎเชพเชเชฅเซ เชธเชเชธเซเชเชฐเชฃ:
{{ dict "Version" .WerfRootVersion "Channel" "root" "Root" $Root | include "doc_artifact" }}
---
{{- if .WerfReviewCommit }}
{{ dict "Version" "review" "Channel" "review" "Commit" .WerfReviewCommit "Root" $Root | include "doc_artifact" }}
{{- end }}
เชฎเชนเซเชฐเชฌเชพเชจเซ เชเชฐเซเชจเซ เชจเซเชเชง เชเชฐเซ เชเซ เชฐเชฟเชตเซเชฏเซ เชเชฎเชฟเช เชฎเชพเชเซ เชเชฐเซเชเชฟเชซเซเชเซเช เชซเชเซเชค เชคเซเชฏเชพเชฐเซ เช เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เชเซ เชตเซเชฐเซเชเชฌเชฒ เชธเซเช เชเชฐเซเชฒ เชนเซเชฏ .WerfReviewCommit
.
เชเชฒเชพเชเซเชคเชฟเช เชคเซเชฏเชพเชฐ เชเซ - เชเชฏเชพเชค เชถเชฐเซ เชเชฐเชตเชพเชจเซ เชธเชฎเชฏ เชเซ!
เช
เชเชคเชฟเชฎ เชเชฌเซ, เชเซเชฌเชฐเชจเซเชเซเชธ เชชเชฐ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชเซ, เชธเชฐเซเชตเชฐ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชจเชฟเชฏเชฎเชฟเชค NGINX เชเซ nginx.conf
เช
เชจเซ เชเชฒเชพเชเซเชคเชฟเชเชฎเชพเชเชฅเซ เชธเซเชฅเชฟเชฐ. เชธเชพเชเชเชจเชพ เชฐเซเช เชตเชฐเซเชเชจเชจเชพ เชเชฐเซเชเชฟเชซเซเชเซเช เชเชชเชฐเชพเชเชค, เชเชชเชฃเซ เชตเซเชฐเซเชเชฌเชฒ เชชเชฐเชจเชพ เชฒเซเชชเชจเซ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. .WerfVersions
เชเซเชจเชฒเชจเซ เชเชฐเซเชเชฟเชซเซเชเซเชเซเชธ เชเชฏเชพเชค เชเชฐเชตเชพ เช
เชจเซ เชตเชฐเซเชเชจ เชฐเชฟเชฒเซเช เชเชฐเชตเชพ + เชเชฐเซเชเชฟเชซเซเชเซเช เชจเชพเชฎเชเชฐเชฃ เชจเชฟเชฏเชฎเชจเซ เช
เชจเซเชธเชฐเซ เชเซ เชเซ เช
เชฎเซ เช
เชเชพเช เช
เชชเชจเชพเชตเซเชฏเซ เชนเชคเซ. เชฆเชฐเซเช เชเชฐเซเชเชฟเชซเซเชเซเช เชธเชพเชเชเชจเชพ เชตเชฐเซเชเชจเชจเซ เชฌเซ เชญเชพเชทเชพเช เชฎเชพเชเซ เชธเซเชเซเชฐ เชเชฐเซ เชเซ, เชคเซเชฅเซ เช
เชฎเซ เชคเซเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเซเชฒ เชธเซเชฅเชพเชจเซเชฎเชพเช เชเชฏเชพเชค เชเชฐเซเช เชเซเช.
เช เชเชคเชฟเชฎ เชเชฌเซ werf-doc เชจเซเช เชตเชฐเซเชฃเชจ
image: werf-doc
from: nginx:stable-alpine
ansible:
setup:
- name: "Setup /etc/nginx/nginx.conf"
copy:
content: |
{{ .Files.Get ".werf/nginx.conf" | indent 8 }}
dest: /etc/nginx/nginx.conf
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/assets
- /app/ru_site/assets
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_main_site
to: /app/main_site/v{{ $Channel }}
before: setup
{{ end -}}
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_ru_site
to: /app/ru_site/v{{ $Channel }}
before: setup
{{ end -}}
เชตเชงเชพเชฐเชพเชจเซ เชเชฎเซเช, เชเซ เชฎเซเชเซเชฏ เชธเชพเชฅเซ, เชกเซเชต เชธเชฐเซเชเชฟเช เชชเชฐ เชฒเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฎเชพเช เชธเชพเชเชเชจเชพ เชฎเชพเชคเซเชฐ เชฌเซ เชตเชฐเซเชเชจ เชเซ: เชฐเชฟเชตเซเชฏเซ เชเชฎเชฟเชเชจเซเช เชตเชฐเซเชเชจ เช เชจเซ เชธเชพเชเชเชจเซเช เชฐเซเช เชตเชฐเซเชเชจ (เชคเซเชฏเชพเช เชธเชพเชฎเชพเชจเซเชฏ เช เชธเซเชเชฏเชพเชฎเชคเซ เชเซ เช เชจเซ, เชเซ เชคเชฎเชจเซ เชฏเชพเชฆ เชนเซเชฏ เชคเซ , เชกเซเชเชพ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซ). เชเชฎ, เชตเชงเชพเชฐเชพเชจเซ เชเชฌเซ เชซเชเซเชค เชเชฏเชพเชค เชตเชฟเชญเชพเชเชฎเชพเช เชฎเซเชเซเชฏ เชเชฌเซเชฅเซ เช เชฒเช เชนเชถเซ (เช เชจเซ, เช เชฒเชฌเชคเซเชค, เชจเชพเชฎเชฎเชพเช):
image: werf-dev
...
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{- if .WerfReviewCommit }}
- artifact: doc-review
add: /app/_main_site
to: /app/main_site/review
before: setup
- artifact: doc-review
add: /app/_ru_site
to: /app/ru_site/review
before: setup
{{- end }}
เชเชชเชฐ เชจเซเชเชงเซเชฏเซเช เชเซ เชคเซเชฎ, เชฐเซเชตเซเชฏเซ เชเชฎเชฟเช เชฎเชพเชเซ เชเชฐเซเชเชฟเชซเซเชเซเช เชคเซเชฏเชพเชฐเซ เช เชเชจเชฐเซเช เชฅเชถเซ เชเซเชฏเชพเชฐเซ เชธเซเช เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเช เชตเซเชฐเซเชเชฌเชฒ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ. REVIEW_SHA
. เชเซ เชคเซเชฏเชพเช เชเซเช เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒ เชจ เชนเซเชฏ เชคเซ เชตเชฐเซเชซ-เชฆเซเชต เชเชฎเซเช เชฌเชฟเชฒเชเซเชฒ เชเชจเชฐเซเช เชจ เชเชฐเชตเซเช เชถเชเซเชฏ เชฌเชจเชถเซ REVIEW_SHA
, เชชเชฐเชเชคเซ เชเซเชฐเชฎเชฎเชพเช
เชเชธเซเชฎเซเชฌเชฒเซ เชคเซเชฏเชพเชฐ เชเซ! เชเชพเชฒเซ CI/CD เช เชจเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซเชเชเชพเช เชคเชฐเชซ เชเชเชณ เชตเชงเซเช.
GitLab CI เชฎเชพเช เชชเชพเชเชชเชฒเชพเชเชจ เช เชจเซ เชกเชพเชฏเชจเซเชฎเชฟเช เชฌเชฟเชฒเซเชกเชจเซ เชธเซเชตเชฟเชงเชพเช
เชฌเชฟเชฒเซเชก เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เชเชชเชฃเซ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชคเชพ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซเชจเซ เชธเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ werf.yaml
. เช REVIEW_SHA เชเชฒ เชชเชฐ เชฒเชพเชเซ เชชเชกเชคเซเช เชจเชฅเซ, เชเซเชจเซ เช
เชฎเซ GitHub เชนเซเชเชฎเชพเชเชฅเซ เชชเชพเชเชชเชฒเชพเชเชจ เชเซเชฒ เชเชฐเชคเซ เชตเชเชคเซ เชธเซเช เชเชฐเซเชถเซเช.
เช
เชฎเซ Bash เชธเซเชเซเชฐเชฟเชชเซเชเชฎเชพเช เชเชฐเซเชฐเซ เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชเชจเชฐเซเช เชเชฐเซเชถเซเช generate_artifacts
, เชเซ เชฌเซ GitLab เชชเชพเชเชชเชฒเชพเชเชจ เชเชฐเซเชเชฟเชซเซเชเซเชเซเชธ เชเชจเชฐเซเช เชเชฐเชถเซ:
- เชซเชพเชเชฒ
releases.yml
เชชเซเชฐเชเชพเชถเชจ เชกเซเชเชพ เชธเชพเชฅเซ, - เชซเชพเชเชฒ
common_envs.sh
, เชจเชฟเชเชพเชธ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซเชจเซ เชธเชฎเชพเชตเซ เชเซ.
เชซเชพเชเชฒ เชธเชฎเชพเชตเชฟเชทเซเชเซ generate_artifacts
เชคเชฎเชจเซ เช
เชฎเชพเชฐเชพเชฎเชพเช เชฎเชณเชถเซ common_envs.sh
เช
เชฎเชพเชฐเชพ เชฎเชพเชเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ, เชเชพเชฐเชฃ เชเซ เชตเชฐเซเชซเชจเซเช เชเชพเชฐเซเชฏ เชคเซเชจเชพ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เชเซ. เชคเซเชจเซ เชธเชพเชฎเชเซเชฐเซเชจเซเช เชเชฆเชพเชนเชฐเชฃ:
export RELEASES='1.0%v1.0.6-4'
export CHANNELS='1.0-alpha%v1.0.7-1 1.0-beta%v1.0.7-1 1.0-ea%v1.0.6-4 1.0-stable%v1.0.6-4 1.0-rock-solid%v1.0.6-4'
export ROOT_VERSION='v1.0.6-4'
เชคเชฎเซ เชเชตเซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเชพ เชเชเชเชชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, Bash เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ source
.
เชนเชตเซ เชฎเชเชพเชจเซ เชญเชพเช เชเชตเซ เชเซ. เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซเช เชจเชฟเชฐเซเชฎเชพเชฃ เช
เชจเซ เชเชฎเชพเชตเช เชฌเชเชจเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเซ เชเชฐเซเชฐเซ เชเซ werf.yaml
เชนเชคเซ เชธเชฎเชพเชจ เชเชเชพเชฎเชพเช เชเชเซเช เชเช เชชเชพเชเชชเชฒเชพเชเชจเชจเซ เช
เชเชฆเชฐ. เชเซ เช เชถเชฐเชค เชชเซเชฐเซ เชจ เชฅเชพเชฏ, เชคเซ เชชเชเซ เชเชธเซเชฎเซเชฌเชฒเซ เช
เชจเซ เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชฎเชพเชตเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เชตเซเชฐเซเชซ เชเชฃเชคเชฐเซ เชเชฐเซ เชเซ เชคเซเชตเชพ เชคเชฌเชเซเชเชพเชเชจเซ เชธเชนเซเช เช
เชฒเช เชนเชถเซ. เช เชเชฎเชพเชตเชเชจเซ เชญเซเชฒ เชคเชฐเชซ เชฆเซเชฐเซ เชเชถเซ, เชเชพเชฐเชฃ เชเซ... เชเชฎเชพเชตเช เชฎเชพเชเซ เชเชฐเซเชฐเซ เชเชฌเซ เชเซเชเซ เชเซ.
เชฌเซเชเชพ เชถเชฌเซเชฆเซเชฎเชพเช เชเชนเซเช เชคเซ, เชเซ เชธเชพเชเช เชเชฎเซเชเชจเซ เชเชธเซเชฎเซเชฌเชฒเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชชเซเชฐเชเชพเชถเชจเซ เช เชจเซ เชธเชเชธเซเชเชฐเชฃเซ เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชธเชฎเชพเชจ เชนเซเชฏ, เช เชจเซ เชเชฎเชพเชตเช เชธเชฎเชฏเซ เชเช เชจเชตเซเช เชธเชเชธเซเชเชฐเชฃ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เช เชจเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซเชจเชพเช เชฎเซเชฒเซเชฏเซ เช เชฒเช เชนเซเชฏ, เชคเซ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชญเซเชฒ เชธเชพเชฅเซ เชจเชฟเชทเซเชซเชณ เชเชถเซ: เชเซเชตเชเซ, เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเชจเซ เชเชฐเซเชเชฟเชซเซเชเซเช เชนเชเซ เชธเซเชงเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชจเชฅเซ.
เชเซ เชชเซเชขเซ werf.yaml
เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซ เชเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชตเชฐเซเชคเชฎเชพเชจ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ, เชเซเชฎ เชเซ เช
เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช), เชคเซ เชชเชเซ เชเชตเชพ เชกเซเชเชพเชจเซ เชฐเชเชจเชพ เช
เชจเซ เชฎเซเชฒเซเชฏเซ เชชเชพเชเชชเชฒเชพเชเชจเชฎเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพ เชเซเชเช. เช เชเชพเชธ เชเชฐเซเชจเซ เชฎเชนเชคเซเชตเชจเซเช เชเซ เชเซ เชฌเชพเชนเซเชฏ เชชเชฐเชฟเชฎเชพเชฃเซ เชเชฃเซ เชตเชพเชฐ เชฌเชฆเชฒเชพเชฏ เชเซ.
เชเชชเชฃเซ เชเชฐเซเชถเซเช เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชฎเซเชณเชตเซ เช
เชจเซ เชฐเซเชเซเชฐเซเชก เชเชฐเซ เชเชฟเชเชฒเซเชฌเชฎเชพเช เชชเชพเชเชชเชฒเชพเชเชจเชจเชพ เชชเซเชฐเชฅเชฎ เชคเชฌเชเซเชเซ (เชชเซเชฐเซเชตเชจเชฟเชฐเซเชฎเชพเชฃ) เช
เชจเซ เชคเซเชฎเชจเซ เชซเซเชฐเซเชฎเชฎเชพเช เชตเชงเซ เชชเซเชฐเชธเชพเชฐเชฟเชค เชเชฐเซ GitLab CI เชเชฐเซเชเชฟเชซเซเชเซเช. เช เชคเชฎเชจเซ เชธเชฎเชพเชจ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชธเชพเชฅเซ เชชเชพเชเชชเชฒเชพเชเชจ เชเซเชฌเซเชธ (เชฌเชฟเชฒเซเชก, เชกเชฟเชชเซเชฒเซเชฏ, เชเซเชฒเชฟเชจเช
เชช) เชเชฒเชพเชตเชตเชพ เช
เชจเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชถเซ. werf.yaml
.
เชธเซเชเซเชเชจเซ เชธเชพเชฎเชเซเชฐเซ เชชเซเชฐเซเชตเชจเชฟเชฐเซเชฎเชพเชฃ เชซเชพเชเชฒ .gitlab-ci.yml
:
Prebuild:
stage: prebuild
script:
- bash ./generate_artifacts 1> common_envs.sh
- cat ./common_envs.sh
artifacts:
paths:
- releases.yml
- common_envs.sh
expire_in: 2 week
เชเชฐเซเชเชฟเชซเซเชเซเชเชฎเชพเช เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชเชฌเชเซ เชเชฐเซเชฏเชพ เชชเชเซ, เชคเชฎเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค GitLab CI เชชเชพเชเชชเชฒเชพเชเชจ เชคเชฌเชเซเชเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฌเชฟเชฒเซเชก เช เชจเซ เชกเชฟเชชเซเชฒเซเชฏ เชเชฐเซ เชถเชเซ เชเซ: เชฌเชฟเชฒเซเชก เช เชจเซ เชกเชฟเชชเซเชฒเซเชฏ. เช เชฎเซ werf GitHub เชฐเชฟเชชเซเชเซเชเชฐเซ (เชเชเชฒเซ โโโโเชเซ, เชเซเชฏเชพเชฐเซ GitHub เชฐเซเชชเซเชเซเชเชฐเซเชฎเชพเช เชซเซเชฐเชซเชพเชฐเซ เชฅเชพเชฏ เชเซ) เชฎเชพเชเชฅเซ เชนเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชพเชเชชเชฒเชพเชเชจ เชชเซเชคเซ เช เชฒเซเชจเซเช เชเชฐเซเช เชเซเช. เชคเซเชฎเชจเชพ เชฎเชพเชเซเชจเซ เชกเซเชเชพ เชตเชฟเชญเชพเชเชฎเชพเช GitLab เชชเซเชฐเซเชเซเชเซเช เชชเซเชฐเซเชชเชฐเซเชเซเชเชฎเชพเช เชฎเชณเซ เชถเชเซ เชเซ CI/CD เชธเซเชเชฟเชเชเซเชธ -> เชชเชพเชเชชเชฒเชพเชเชจ เชเซเชฐเชฟเชเชฐเซเชธ, เช เชจเซ เชชเชเซ GitHub เชฎเชพเช เช เชจเซเชฐเซเชช เชตเซเชฌเชนเซเช เชฌเชจเชพเชตเซ (เชธเซเชเชฟเชเชเซเชธ -> เชตเซเชฌเชนเซเชเซเชธ).
เชฌเชฟเชฒเซเชก เชธเซเชเซเช เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชถเซ:
Build:
stage: build
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf build-and-publish --stages-storage :local
except:
refs:
- schedules
dependencies:
- Prebuild
เชเชฟเชเชฒเซเชฌ เชธเซเชเซเชเชฅเซ เชฌเชฟเชฒเซเชก เชธเซเชเซเช เชชเชฐ เชฌเซ เชเชฐเซเชเชฟเชซเซเชเซเช เชเชฎเซเชฐเชถเซ เชชเซเชฐเซเชตเชจเชฟเชฐเซเชฎเชพเชฃ, เชคเซเชฅเซ เช
เชฎเซ เชเชจเซเชธเซเชเซเชฐเชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชฏเชพเชฐ เชเชจเชชเซเช เชกเซเชเชพ เชธเชพเชฅเซ เชเชฒเซเชจเซ เชจเชฟเชเชพเชธ เชเชฐเซเช เชเซเช source common_envs.sh
. เชถเซเชกเซเชฏเซเชฒ เชฎเซเชเชฌ เชชเชพเชเชชเชฒเชพเชเชจ เชถเชฐเซ เชเชฐเชตเชพ เชธเชฟเชตเชพเชฏ เช
เชฎเซ เชคเชฎเชพเชฎ เชเซเชธเซเชฎเชพเช เชฌเชฟเชฒเซเชก เชธเซเชเซเช เชถเชฐเซ เชเชฐเซเช เชเซเช. เชถเซเชกเซเชฏเซเชฒ เชฎเซเชเชฌ, เช
เชฎเซ เชธเชซเชพเช เชฎเชพเชเซ เชชเชพเชเชชเชฒเชพเชเชจ เชเชฒเชพเชตเซเชถเซเช - เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชเชธเซเชฎเซเชฌเชฒเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ.
เชเชฎเชพเชตเชเชจเชพ เชคเชฌเชเซเชเซ, เช เชฎเซ เชฌเซ เชเชพเชฐเซเชฏเซเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซเชถเซเช - YAML เชเซเชฎเซเชชเชฒเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชคเซเชชเชพเชฆเชจ เช เชจเซ เชกเซเชต เชธเชฐเซเชเชฟเชเชฎเชพเช เชเชฎเชพเชตเช เชฎเชพเชเซ เช เชฒเชเชฅเซ:
.base_deploy: &base_deploy
stage: deploy
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf deploy --stages-storage :local
dependencies:
- Prebuild
except:
refs:
- schedules
Deploy to Production:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: prod
environment:
name: production
url: werf.io
only:
refs:
- master
except:
variables:
- $REVIEW_SHA
refs:
- schedules
Deploy to Test:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: dev
environment:
name: test
url: werf.test.flant.com
except:
refs:
- schedules
only:
variables:
- $REVIEW_SHA
เชเชพเชฐเซเชฏเซ เชเชตเชถเซเชฏเชเชชเชฃเซ เชซเชเซเชค เชเซเชฒเชธเซเชเชฐ เชธเชเชฆเชฐเซเชญเชจเซ เชธเซเชเชตเชตเชพเชฎเชพเช เช
เชฒเช เชชเชกเซ เชเซ เชเซเชฎเชพเช werf เช เชเชฎเชพเชตเช เชเชฐเชตเซ เชเซเชเช (WERF_KUBE_CONTEXT
), เช
เชจเซ เชฒเซเชช เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเช เชตเซเชฐเชฟเชฏเซเชฌเชฒ เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซ (environment.name
ะธ environment.url
), เชเซ เชชเชเซ เชนเซเชฒเซเชฎ เชเชพเชฐเซเช เชเซเชฎเซเชชเชฒเซเชเซเชธเชฎเชพเช เชตเชชเชฐเชพเชฏ เชเซ. เช
เชฎเซ เชจเชฎเซเชจเชพเชเชจเซ เชธเชพเชฎเชเซเชฐเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซเชถเซเช เชจเชนเซเช, เชเชพเชฐเชฃ เชเซ... เชชเซเชฐเชถเซเชจเชฎเชพเช เชตเชฟเชทเชฏ เชฎเชพเชเซ เชคเซเชฏเชพเช เชเชเช เชฐเชธเชชเซเชฐเชฆ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเชฎเซ เชคเซเชจเซ เชคเซเชฎเชพเช เชถเซเชงเซ เชถเชเซ เชเซ
เช เชเชคเชฟเชฎ เชธเซเชชเชฐเซเชถ
werf เชเชตเซเชคเซเชคเชฟเช เชเชฃเซ เชตเชพเชฐ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเชคเซ เชนเซเชตเชพเชฅเซ, เชจเชตเซ เชเชฌเซเช เชตเชพเชฐเชเชตเชพเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ, เช เชจเซ เชกเซเชเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซ เชธเชคเชค เชตเชงเชถเซ. เชคเซเชฅเซ, เชจเซเชคเชฟเชเชจเชพ เชเชงเชพเชฐเซ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฎเซเช เชเซเชฒเชฟเชจเช เชชเชจเซ เชเซเช เชตเชตเซเช เชนเชฟเชคเชพเชตเชน เชเซ. เชคเซ เชเชฐเชตเซเช เชเซเชฌ เช เชธเชฐเชณ เชเซ.
เช เชฎเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ:
- เชฎเชพเช เชธเชซเชพเช เชชเชเชฒเซเช เชเชฎเซเชฐเซ
.gitlab-ci.yml
; - เชธเชซเชพเช เชเชพเชฐเซเชฏเชจเซ เชธเชพเชฎเชฏเชฟเช เช เชฎเชฒ เชเชฎเซเชฐเซ;
- เชฐเชพเชเช เชเชเซเชธเซเชธ เชเซเชเชจ เชธเชพเชฅเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซเชฐเซเชเชฌเชฒ เชธเซเช เชเชฐเซ.
เชฎเชพเช เชธเชซเชพเช เชธเซเชเซเช เชเชฎเซเชฐเซ เชฐเชนเซเชฏเชพ เชเซ .gitlab-ci.yml
:
Cleanup:
stage: cleanup
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- docker login -u nobody -p ${WERF_IMAGES_CLEANUP_PASSWORD} ${WERF_IMAGES_REPO}
- werf cleanup --stages-storage :local
only:
refs:
- schedules
เช
เชฎเซ เชชเชนเซเชฒเชพเชฅเซ เช เช เชฌเชงเซเช เชฅเซเชกเซเช เชเชเชเซเช เชเซเชฏเซเช เชเซ - เชซเชเซเชค เชคเซเชจเซ เชธเชพเชซ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชชเชนเซเชฒเชพ เชกเซเชเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช เชกเซเชเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช เชเชฌเซเช เชเชพเชขเซ เชจเชพเชเชตเชพเชจเชพ เช
เชงเชฟเชเชพเชฐเซ เชงเชฐเชพเชตเชคเชพ เชเซเชเชจ เชธเชพเชฅเซ เชฒเซเช เชเชจ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ (เชเชชเชฎเซเชณเซ เชเชพเชฐเซ เชเชฐเชพเชฏเซเชฒ GitLab CI เชเชพเชธเซเช เชเซเชเชจ เชเชตเซเช เชจเชฅเซ. เชเชตเชพ เช
เชงเชฟเชเชพเชฐเซ เชงเชฐเชพเชตเซ เชเซ). เชเซเชเชจ GitLab เชฎเชพเช เช
เชเชพเชเชฅเซ เชฌเชจเชพเชตเชตเซเช เชเชตเชถเซเชฏเช เชเซ เช
เชจเซ เชคเซเชจเซ เชเชฟเชเชฎเชค เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซเชฐเซเชเชฌเชฒเชฎเชพเช เชจเชฟเชฐเซเชฆเชฟเชทเซเช เชนเซเชตเซ เชเซเชเช WERF_IMAGES_CLEANUP_PASSWORD
เชชเซเชฐเซเชเซเชเซเช (CI/CD เชธเซเชเชฟเชเชเซเชธ -> เชเชฒ).
เชเชฐเซเชฐเซ เชถเซเชกเซเชฏเซเชฒ เชธเชพเชฅเซ เชธเชซเชพเช เชเชพเชฐเซเชฏ เชเชฎเซเชฐเชตเชพเชจเซเช เชชเซเชฐเซเชฃ เชฅเชพเชฏ เชเซ CI/CD ->
เชถเซเชกเซเชฏเซเชฒเซเชธ.
เชฌเชธ เชเชเชฒเซเช เช: เชกเซเชเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเชเชจเซ เชชเซเชฐเซเชเซเชเซเช เชนเชตเซ เชฌเชฟเชจเชเชชเชฏเซเชเซ เชเชฎเซเชเซเชฅเซ เชธเชคเชค เชตเชงเชถเซ เชจเชนเซเช.
เชตเซเชฏเชตเชนเชพเชฐเซ เชญเชพเชเชจเชพ เช
เชเชคเซ, เชนเซเช เชคเชฎเชจเซ เชฏเชพเชฆ เช
เชชเชพเชตเซ เชฆเชเช เชเซ เชฒเซเชเชฎเชพเชเชฅเซ เชธเชเชชเซเชฐเซเชฃ เชธเซเชเชฟเช เชเชฎเชพเช เชเชชเชฒเชฌเซเชง เชเซ
เชชเชฐเชฟเชฃเชพเชฎ
- เช เชฎเชจเซ เชฒเซเชเชฟเชเชฒ เชเชธเซเชฎเซเชฌเชฒเซ เชฎเชพเชณเชเซเช เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเช: เชธเชเชธเซเชเชฐเชฃ เชฆเซเช เชเช เชเชฐเซเชเชฟเชซเซเชเซเช.
- เชเชธเซเชฎเซเชฌเชฒเซ เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช เชเซ เช เชจเซ เชเซเชฏเชพเชฐเซ werf เชจเชพ เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเซ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เชฎเซเชจเซเชฏเซเช เชฒ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชเชฐเซเชฐ เชจเชฅเซ: เชตเซเชฌเชธเชพเชเช เชชเชฐเชจเชพ เชฆเชธเซเชคเชพเชตเซเชเซ เชเชชเชฎเซเชณเซ เช เชชเชกเซเช เชฅเชพเชฏ เชเซ.
- เชฌเซ เชเชฌเซเช เชตเชฟเชตเชฟเชง เชฐเซเชชเชฐเซเชเชพ เชฎเชพเชเซ เชเชธเซเชฎเซเชฌเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชคเซ เชเชกเชชเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ, เชเชพเชฐเชฃ เชเซ เชเซเชถเซเชเชเชจเซ เชถเชเซเชฏ เชคเซเชเชฒเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ - เชเซเชฏเชพเชฐเซ werf เชจเซเช เชจเชตเซเช เชธเชเชธเซเชเชฐเชฃ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชฅเชตเชพ GitHub เชนเซเชเชจเซ เชธเชฎเซเชเซเชทเชพ เชเชฎเชฟเช เชฎเชพเชเซ เชฌเซเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชฎเชพเชคเซเชฐ เชฌเชฆเชฒเชพเชฏเซเชฒ เชธเชเชธเซเชเชฐเชฃ เชธเชพเชฅเซ เช เชจเซเชฐเซเชช เชเชฐเซเชเชฟเชซเซเชเซเช เชซเชฐเซเชฅเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชฌเชฟเชจเชเชชเชฏเซเชเซ เชเชฌเซเช เชเชพเชขเซ เชจเชพเชเชตเชพ เชตเชฟเชถเซ เชตเชฟเชเชพเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ: werf เชจเซเชคเชฟเช เช เชจเซเชธเชพเชฐ เชธเชซเชพเช เชกเซเชเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเชจเซ เชตเซเชฏเชตเชธเซเชฅเชฟเชค เชฐเชพเชเชถเซ.
เชคเชพเชฐเชฃเซ
- werf เชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฅเซ เชเชธเซเชฎเซเชฌเชฒเซเชจเซ เชเซเชถเซเชเช เช เชจเซ เชฌเชพเชนเซเชฏ เชฐเซเชชเซเชเซเชเชฐเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ เชเซเชถเซเชเช เชฌเชเชจเซเชจเซ เชเชพเชฐเชฃเซ เชเชธเซเชฎเซเชฌเชฒเซ เชเชกเชชเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฆเซ เชเซ.
- เชฌเชพเชนเซเชฏ เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชฅเซ เชฆเชฐเซเช เชตเชเชคเซ เชธเชฎเชเซเชฐ เชฐเซเชชเซเชเซเชเชฐเซเชจเซ เชเซเชฒเซเชจ เชเชฐเชตเชพเชจเซ เช
เชฅเชตเชพ เชฎเซเชถเซเชเซเชฒ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชฒเซเชเซเช เชธเชพเชฅเซ เชตเซเชนเซเชฒเชจเซ เชซเชฐเซเชฅเซ เชถเซเชงเชตเชพเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเชจเซ เชฆเซเชฐ เชเชฐเซ เชเซ. werf เชเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เช
เชจเซ เชฎเชพเชคเซเชฐ เชเช เช เชตเชพเชฐ เชเซเชฒเซเชจเชฟเชเช เชเชฐเซ เชเซ, เช
เชจเซ เชชเชเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ
fetch
เช เชจเซ เชเซเชฏเชพเชฐเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เช. - เชฌเชฟเชฒเซเชก เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเชฎเชพเช เชเซ เชจเชฎเซเชจเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ
werf.yaml
เชคเชฎเชจเซ เชเชธเซเชฎเซเชฌเชฒเซเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ เชเซเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ เชฌเชพเชนเซเชฏ เชกเซเชเชพ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเซ. - เชฎเชพเชเชจเซเช เชเชจ เชตเซเชฐเซเชซเชจเซ เชเชชเชฏเซเช เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชเชฒเชพเชเซเชคเชฟเชเชจเชพ เชธเชเชเซเชฐเชนเชจเซ เชเชกเชชเซ เชฌเชจเชพเชตเซ เชเซ - เชเซเชถเชจเซ เชเชพเชฐเชฃเซ, เชเซ เชฌเชงเซ เชชเชพเชเชชเชฒเชพเชเชจเซเชธ เชฎเชพเชเซ เชธเชพเชฎเชพเชจเซเชฏ เชเซ.
- werf เชธเชซเชพเชเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเชตเชพเชจเซเช เชธเชฐเชณ เชฌเชจเชพเชตเซ เชเซ, เชเซ เชเชคเชฟเชถเซเชฒ เชฐเซเชคเซ เชจเชฟเชฐเซเชฎเชพเชฃ เชเชฐเชคเซ เชตเชเชคเซ เชเชพเชธ เชเชฐเซเชจเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ.
PS
เช เชฎเชพเชฐเชพ เชฌเซเชฒเซเช เชชเชฐ เชชเชฃ เชตเชพเชเชเซ:
- ยซ
เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชจเชตเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฐเซเชฒเซเช เชตเชฟเชคเชฐเชฟเชค เชเชฐเชคเซ เชตเชเชคเซ เชเชฆเซเชถเซ เชเชฒเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซ ยป; - ยซ
werf เช เชจเซ GitLab CI เชธเชพเชฅเซ เชธเชฎเชพเชจ เชชเซเชฐเชเชพเชฐเชจเซ เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธเชฟเชธ เชฌเชจเชพเชตเซ เช เชจเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ ยป; - ยซ
เชเชเชฟเชฒ เชนเซเชฒเซเชฎ เชเชพเชฐเซเช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ werf เชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ ยป; - ยซ
werf 1.0 stable เชจเซ เชชเชฐเชฟเชเชฏ: GitOps เชจเซ เชคเซเชจเซ เชธเชพเชฅเซ เชถเซเช เชฒเซเชตเชพเชฆเซเชตเชพ เชเซ, เชธเซเชฅเชฟเชคเชฟ เช เชจเซ เชฏเซเชเชจเชพเช ยป.
เชธเซเชฐเซเชธ: www.habr.com