เช เชฌเชงเซเช เชคเซเชฏเชพเชฐเซ เชถเชฐเซ เชฅเชฏเซเช เชเซเชฏเชพเชฐเซ เช เชฎเชพเชฐเซ เชเช เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชเซเชฎเชจเชพ เชเซเชฎ เชฒเซเชกเช เช เชฎเชจเซ เชคเซเชฎเชจเซ เชจเชตเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเชตเชพ เชเชนเซเชฏเซเช, เชเซ เชเช เชฆเชฟเชตเชธ เชชเชนเซเชฒเชพ เชเชจเซเชเซเชจเชฐเชพเชเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชฎเซเช เชคเซเชจเซ เชชเซเชธเซเช เชเชฐเซเชฏเซเช. เชฒเชเชญเช 20 เชฎเชฟเชจเชฟเช เชชเชเซ, เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เช เชชเชกเซเช เชเชฐเชตเชพเชจเซ เชตเชฟเชจเชเชคเซ เชฎเชณเซ, เชเชพเชฐเชฃ เชเซ เชคเซเชฏเชพเช เชเช เชเซเชฌ เช เชเชฐเซเชฐเซ เชตเชธเซเชคเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชฎเซเช เชจเชตเซเชเชฐเชฃ เชเชฐเซเชฏเซเช. เชฌเซเชเชพ เชฌเซ เชเชฒเชพเช เชชเชเซ... เชธเชพเชฐเซเช, เชคเชฎเซ เช เชจเซเชฎเชพเชจ เชเชฐเซ เชถเชเซ เชเซ เชเซ เชเชเชณ เชถเซเช เชฅเชตเชพเชจเซเช เชถเชฐเซ เชฅเชฏเซเช...
เชฎเชพเชฐเซ เชเชฌเซเชฒ เชเชฐเชตเซเช เชเซเชเช, เชนเซเช เชเชเชฆเชฎ เชเชณเชธเซ เชเซเช (เชถเซเช เชฎเซเช เช เช เชเชพเช เชธเซเชตเซเชเชพเชฐเซเชฏเซเช เชจ เชนเชคเซเช? เชจเชพ?), เช เชจเซ เช เชนเชเซเชเชคเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฐเชพเชเซเชจเซ เชเซ เชเซเชฎ เชฒเซเชกเซเชธเชจเซ เชเซเชจเชเชฟเชจเซเชธ เชธเซเชงเซ เชชเชนเซเชเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซเชฎเชพเช เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชคเชฎเชพเชฎ CI/CD เชเซ, เชฎเซเช เชตเชฟเชเชพเชฐเซเชฏเซเช: เชคเซเชจเซ เชคเซเชจเชพเชค เชเชฐเชตเชพ เชฆเซ เชเซเชเชฒเซเช เชคเซ เชเชเซเชเซ เชเซ! เชฎเชจเซ เชเช เชฎเชเชพเช เชฏเชพเชฆ เชเชตเซ: เชเช เชฎเชพเชฃเชธเชจเซ เชฎเชพเชเชฒเซ เชเชชเซ เช เชจเซ เชคเซ เชเช เชฆเชฟเชตเชธ เชเชพเชถเซ; เชตเซเชฏเชเซเชคเชฟเชจเซ เชซเซเชก เชเชนเซ เช เชจเซ เชคเซเชจเซ เชเชเซ เชเซเชเชฆเชเซ เชซเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เช เชจเซ เชเชฏเซ เชเชพเชฎ เชชเชฐ เชฏเซเชเซเชคเชฟเช เชฐเชฎเซ, เชเซ เชเซเชฌเซเชฐเชฎเชพเช เชเซเชเชชเชฃ เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชฌเชฟเชฒเซเช เชตเชฐเซเชเชจเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชงเชฐเชพเชตเชคเซเช เชเชจเซเชเซเชจเชฐ เชคเซเชจเชพเชค เชเชฐเซ เชถเชเชถเซ เช เชจเซ เชคเซเชฎเชพเช เชเซเชเชชเชฃ เชฎเซเชฒเซเชฏเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเซ เชถเชเชถเซ. ENV (เชฎเชพเชฐเชพ เชฆเชพเชฆเชพ, เชเช เชซเชฟเชฒเซเชฒเซเชเชฟเชธเซเช, เชญเซเชคเชเชพเชณเชฎเชพเช เช เชเชเซเชฐเซเชเซ เชถเชฟเชเซเชทเช, เชนเชตเซ เช เชตเชพเชเซเชฏ เชตเชพเชเชเซเชฏเชพ เชชเชเซ เชคเซเชฎเชจเชพ เชฎเชเชฆเชฟเชฐเชฎเชพเช เชคเซเชฎเชจเซ เชเชเชเชณเซ เชซเซเชฐเชตเชถเซ เช เชจเซ เชฎเชจเซ เชเซเชฌ เช เช เชญเชฟเชตเซเชฏเชเซเชค เชฐเซเชคเซ เชเซเชถเซ).
เชคเซเชฅเซ, เช เชจเซเชเชงเชฎเชพเช เชนเซเช เชคเชฎเชจเซ เชเชนเซเชถ เชเซ เชนเซเช เชเซเชตเซ เชฐเซเชคเซ เชถเซเชเซเชฏเซ:
- เชเซเชจเชเชฟเชจเซเชธเชฎเชพเช เชจเซเชเชฐเซเชฎเชพเชเชฅเซ เช เชฅเชตเชพ เช เชจเซเชฏ เชจเซเชเชฐเซเชเชฎเชพเชเชฅเซ เชเชคเชฟเชถเซเชฒ เชฐเซเชคเซ เช เชชเชกเซเช เชเชฐเซ;
- เชเซเชจเชเชฟเชจเซเชธ เชเชเชจเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒเชพ เชจเซเชกเชฎเชพเชเชฅเซ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒ (เชเซเชฒเชพเชเชก เชถเซเชฒ) เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเซ;
- Google Kubernetes Engine เชชเชฐ เชตเชฐเซเชเชฒเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเซ.
เชนเชเซเชเชคเชฎเชพเช, เชนเซเช, เช
เชฒเชฌเชคเซเชค, เชเชเชเช เช
เชเชถเซ เชเชชเชเซ เชเซเช. เชเชตเซเช เชฎเชพเชจเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ Google เชเซเชฒเชพเชเชกเชฎเชพเช เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเชเชพเชฎเชพเช เชเชเซ เชญเชพเช เชเซ, เช
เชจเซ เชคเซเชฅเซ, เชคเชฎเซ เชคเซเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซ เช
เชจเซ, เช
เชฒเชฌเชคเซเชค, เชคเชฎเชพเชฐเซ เชชเชพเชธเซ GCP เชเชเชพเชเชจเซเช เชเซ. เชชเชฐเชเชคเซ เชคเซ เช เชจเซเช เชตเชฟเชถเซ เชจเชฅเซ.
เช เชฎเชพเชฐเซ เชเชเชพเชฎเซ เชเซเช เชถเซเช เชเซ. เชนเซเช เชซเชเซเชค เชเช เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชเชตเซ เชจเซเชเชงเซ เชฒเชเชตเชพ เชฎเชพเชเชเซ เชเซเช: เชฎเชจเซ เชเช เชธเชฎเชธเซเชฏเชพเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซเชฏเซ เชนเชคเซ, เชฎเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชนเชฒ เชเชฐเชตเซเช เชคเซ เชเชฌเชฐ เชจ เชนเชคเซ, เชเชเซเชฒ เชคเซเชฏเชพเชฐ-เชฎเซเชเชก Google เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชจ เชนเชคเซ, เชคเซเชฅเซ เชฎเซเช เชคเซเชจเซ เชญเชพเชเซเชฎเชพเช เชเซเชเชฒ เชเชฐเซเชฏเซเช เช เชจเซ เชเชเชฐเซ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เชเชฐเซ. เช เชจเซ เชคเซเชฅเซ เชญเชตเชฟเชทเซเชฏเชฎเชพเช, เชเซเชฏเชพเชฐเซ เชนเซเช เชญเซเชฒเซ เชเชพเชเช เชเซ เชฎเซเช เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเซเชฏเซเช, เชคเซเชฏเชพเชฐเซ เชฎเชพเชฐเซ เชฆเชฐเซเช เชตเชธเซเชคเซเชจเซ เชเซเชเชกเซ-เชเซเชเชกเซ เชซเชฐเซเชฅเซ เชเซเชเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ เช เชจเซ เชคเซเชจเซ เชเชเชธเชพเชฅเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชนเซเช เชฎเชพเชฐเซ เชเชพเชคเชจเซ เชเชตเซ เชเซเช เชถเซเชเซเชธ เชฒเชเซเช เชเซเช.
เชกเชฟเชธเชเซเชฒเซเชฎเชฐ: 1. เชญเซเชฎเชฟเชเชพ เชฎเชพเชเซ เชจเซเชเชง โเชฎเชพเชฐเชพ เชฎเชพเชเซโ เชฒเชเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ เชถเซเชฐเซเชทเซเช เช เชญเซเชฏเชพเชธ เชฒเชพเชเซ เชชเชกเชคเซเช เชจเชฅเซ. เชเชฟเชชเซเชชเชฃเซเชเชฎเชพเช "เช เชฐเซเชคเซ เชเชฐเชตเซเช เชตเชงเซ เชธเชพเชฐเซเช เชนเซเชค" เชตเชฟเชเชฒเซเชชเซ เชตเชพเชเชเซเชจเซ เชฎเชจเซ เชเชจเชเชฆ เชฅเชฏเซ.
2. เชเซ เชจเซเชเชจเชพ เชฒเชพเชเซ เชเชฐเซเชฒเชพ เชญเชพเชเชจเซ เชฎเซเช เซเช เชฎเชพเชจเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ, เชฎเชพเชฐเซ เช เชเชพเชเชจเซ เชฌเชงเซ เชจเซเชเชงเซเชจเซ เชเซเชฎ, เช เชเช เชจเชฌเชณเซเช เชฎเซเช เซเช เชธเซเชฒเซเชฏเซเชถเชจ เชเซ.
เชเซเชจเชเชฟเชจเซเชธเชฎเชพเช เชเซเชฌ เชธเซเชเชฟเชเชเซเชธเชจเซ เชเชคเชฟเชถเซเชฒ เชฐเซเชคเซ เช เชชเชกเซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
เชนเซเช เชคเชฎเชพเชฐเชพ เชชเซเชฐเชถเซเชจเชจเซ เชเชเชพเชนเซ เชเชฐเซเช เชเซเช: เชเชคเชฟเชถเซเชฒ เชเซเชฌ เช เชชเชกเซเชเชจเซ เชคเซเชจเซ เชธเชพเชฅเซ เชถเซเช เชธเชเชฌเชเชง เชเซ? เชธเซเชเซเชฐเชฟเชเช เชชเซเชฐเชพเชฎเซเชเชฐเชจเซเช เชฎเซเชฒเซเชฏ เชเชพเชคเซ เชฆเชพเชเชฒ เชเชฐเซ เช เชจเซ เชคเชฎเซ เชเชพเช เชเซ!
เชนเซเช เชเชตเชพเชฌ เชเชชเซเช เชเซเช: เชนเซเช เชเชฐเซเชเชฐ เชเชณเชธเซ เชเซเช, เชเซเชฏเชพเชฐเซ เชคเซเช เชซเชฐเชฟเชฏเชพเชฆ เชเชฐเซ เชคเซเชฏเชพเชฐเซ เชฎเชจเซ เชคเซ เชเชฎเชคเซเช เชจเชฅเซ: เชฎเซเชถเชพ, เชเชฎเชพเชตเช เชคเซเชเซ เชฐเชนเซ เชเซ, เชฌเชงเซเช เชธเชฎเชพเชชเซเชค เชฅเช เชเชฏเซเช เชเซ! เชคเชฎเซ เชเซเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ, เช เชจเซ เชเซเชเชฒเชพเช เชเชพเชธเซเช เชฒเซเชจเซเช เชชเซเชฐเชพเชฎเซเชเชฐเชจเชพ เชฎเซเชฒเซเชฏเชฎเชพเช เชเชพเชเชชเซ เชเซ. เชคเซเชฅเซ, เชนเซเช เชถเชเซเชฏ เชคเซเชเชฒเซ เช เชธเชฐเชเชพเชฐเช เชฐเซเชคเซ เชฌเชงเซเช เชเชฐเชตเชพเชจเซเช เชชเชธเชเชฆ เชเชฐเซเช เชเซเช. เชเซ เชชเชธเชเชฆ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชฎเซเชฒเซเชฏเซเชจเซ เชธเซเชเชฟ เชเชชเซเชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชธเซเชงเชพ เชกเซเชเชพ เชฆเชพเชเชฒ เชเชฐเชคเชพ เช เชเชเชพเชตเชตเชพเชจเซเช เชถเชเซเชฏ เชนเซเชฏ, เชคเซ เชนเซเช เชชเชธเชเชฆเชเซ เชเซเช เชตเซเช เชเซเช.
เชฏเซเชเชจเชพ เช เชเซ: เช เชฎเซ เชเซเชจเชเชฟเชจเซเชธเชฎเชพเช เชเช เชเซเชฌ เชฌเชจเชพเชตเซเช เชเซเช, เชเซเชฎเชพเช, เชฒเซเชเช เชเชฐเชคเชพ เชชเชนเซเชฒเชพ, เช เชฎเซ เชธเซเชเชฟเชฎเชพเชเชฅเซ เชเช เชธเชเชธเซเชเชฐเชฃ เชชเชธเชเชฆ เชเชฐเซ เชถเชเซเช เชเซเช, เชเชจเซเชเซเชจเชฐเชจเซ เชชเชธเชพเชฐ เชเชฐเซเชฒเชพ เชชเชฐเชฟเชฎเชพเชฃเซ เชฎเชพเชเซ เชฎเซเชฒเซเชฏเซเชจเซ เชเชฒเซเชฒเซเช เชเชฐเซ เชถเชเซเช เชเซเช ENV, เชชเชเซ เชคเซ เชเชจเซเชเซเชจเชฐ เชเชเชคเซเชฐเชฟเชค เชเชฐเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเชจเซเชเซเชจเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช เชงเชเซเชฒเซ เชเซ. เชชเชเซ เชคเซเชฏเชพเชเชฅเซ เชเชจเซเชเซเชจเชฐเชจเซ เชเซเชฏเซเชฌเชฐ เชคเชฐเซเชเซ เชฒเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชตเชฐเซเชเชฒเซเชก เชเซเชฌเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชชเชฐเชฟเชฎเชพเชฃเซ เชธเชพเชฅเซ.
เช เชฎเซ เชเซเชจเชเชฟเชจเซเชธเชฎเชพเช เชจเซเชเชฐเซ เชฌเชจเชพเชตเชตเชพ เช เชจเซ เชธเซเช เชเชฐเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช เชจเชนเซเช, เช เชตเชฟเชทเชฏเชจเซ เชฌเชนเชพเชฐ เชเซ. เช เชฎเซ เชงเชพเชฐเซเชถเซเช เชเซ เชเชพเชฐเซเชฏ เชคเซเชฏเชพเชฐ เชเซ. เชธเชเชธเซเชเชฐเชฃเซ เชธเชพเชฅเซ เช เชชเชกเซเช เชเชฐเซเชฒเซ เชธเซเชเชฟเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพ เชฎเชพเชเซ, เช เชฎเชจเซ เชฌเซ เชตเชธเซเชคเซเชเชจเซ เชเชฐเซเชฐ เชเซ: เชชเซเชฐเชพเชฏเซเชฐเซ เชฎเชพเชจเซเชฏ เชธเชเชธเซเชเชฐเชฃ เชจเชเชฌเชฐเซ เชธเชพเชฅเซเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฐเซเชค เชธเซเชเชฟ เช เชจเซ เชเชฒ เชชเชธเชเชฆเชเซ เชชเชฐเชฟเชฎเชพเชฃ เชเชพเชฐเซเชฏ เชฎเชพเช. เช เชฎเชพเชฐเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เชเชฒเชจเซ เชจเชพเชฎ เชเชชเชตเชพ เชฆเซ BUILD_VERSION, เช เชฎเซ เชคเซเชจเชพ เชชเชฐ เชตเชฟเชเชคเชตเชพเชฐ เชงเซเชฏเชพเชจ เชเชชเซเชถเซเช เชจเชนเซเช. เชชเชฐเชเชคเซ เชเชพเชฒเซ เชธเซเชฐเซเชค เชธเซเชเชฟ เชชเชฐ เชจเชเซเชเชฅเซ เชจเชเชฐ เชเชฐเซเช.
เชคเซเชฏเชพเช เชเชฃเชพ เชฌเชงเชพ เชตเชฟเชเชฒเซเชชเซ เชจเชฅเซ. เชฌเซ เชตเชธเซเชคเซเช เชคเชฐเชค เช เชงเซเชฏเชพเชจเชฎเชพเช เชเชตเซ:
- เชฐเซเชฎเซเช เชเชเซเชธเซเชธ API เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชเซเชจเชเชฟเชจเซเชธ เชคเซเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชเชซเชฐ เชเชฐเซ เชเซ;
- เชฐเชฟเชฎเซเช เชฐเชฟเชชเซเชเซเชเชฐเซ เชซเซเชฒเซเชกเชฐเชจเซ เชธเชพเชฎเชเซเชฐเซเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ (เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เช เชเซเชซเซเชฐเซเช เชเชฐเซเชเชฟเชซเซเชเซเชเชฐเซ เชเซ, เชเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชจเชฅเซ).
เชเซเชจเชเชฟเชจเซเชธ เชฐเชฟเชฎเซเช เชเชเซเชธเซเชธ API
เชธเซเชฅเชพเชชเชฟเชค เชเชคเซเชเซเชทเซเช เชชเชฐเชเชชเชฐเชพ เช
เชจเซเชธเชพเชฐ, เชนเซเช เชฒเชพเชเชฌเชพ เชเซเชฒเชพเชธเชพ เชเชพเชณเชตเชพเชจเซเช เชชเชธเชเชฆ เชเชฐเซเชถ.
เชนเซเช เชฎเชพเชฐเซ เชเชพเชคเชจเซ เชซเชเซเชค เชชเซเชฐเชฅเชฎ เชซเชเชฐเชพเชจเชพ เชเช เชญเชพเชเชจเชพ เชฎเชซเชค เช
เชจเซเชตเชพเชฆเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซเชถ
เชเซเชจเชเชฟเชจเซเชธ เชคเซเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชฎเชพเชเซ เชฆเซเชฐเชธเซเชฅ เชฎเชถเซเชจ-เชตเชพเชเชเซ เชถเชเชพเชฏ เชคเซเชตเซ เชเชเซเชธเซเชธ เชฎเชพเชเซ API เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. <โฆ> เชฐเชฟเชฎเซเช เชเชเซเชธเซเชธ REST เชเซเชตเซ เชถเซเชฒเซเชฎเชพเช เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ เชฌเชงเซ เชธเซเชตเชฟเชงเชพเช เชฎเชพเชเซ เชเซเช เชเชเชฒ เชชเซเชฐเชตเซเชถ เชฌเชฟเชเชฆเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซเชจเชพ เชฌเชฆเชฒเซ "เชเซเชฎ เชเซ URL.../api/", เชเซเชฏเชพเช"..."เชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ เชเซ เชเชฌเซเชเซเชเซเช เชชเชฐ API เชเซเชทเชฎเชคเชพเช เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชฌเซเชเชพ เชถเชฌเซเชฆเซเชฎเชพเช เชเชนเซเช เชคเซ, เชเซ เชเชชเชฃเซ เชนเชพเชฒเชฎเชพเช เชเซ เชเชฎเชพเชตเช เชเชพเชฐเซเชฏ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช เชคเซ เชเชชเชฒเชฌเซเชง เชเซ http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build
, เชชเชเซ เช เชเชพเชฐเซเชฏ เชฎเชพเชเซ API เชตเซเชนเชฟเชธเชฒเซเชธ เชชเชฐ เชเชชเชฒเชฌเซเชง เชเซ http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/
เชเชเชณ, เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชชเชธเชเชฆเชเซ เชเซ เชเซ เชเชเชเชชเซเช เชเชฏเชพ เชธเซเชตเชฐเซเชชเชฎเชพเช เชฎเซเชณเชตเชตเซเช. เชเชพเชฒเซ XML เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซเช, เชเชพเชฐเชฃ เชเซ API เชซเชเซเชค เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชซเชฟเชฒเซเชเชฐเชฟเชเชเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
เชเชพเชฒเซ เชซเชเซเชค เชคเชฎเชพเชฎ เชเซเชฌ เชฐเชจเชจเซ เชธเซเชเชฟ เชฎเซเชณเชตเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช. เช เชฎเชจเซ เชซเชเซเชค เชเชธเซเชฎเซเชฌเชฒเซเชจเชพ เชจเชพเชฎเชฎเชพเช เชฐเชธ เชเซ (เชกเชฟเชธเซเชชเซเชฒเซ เชจเชพเชฎ) เช เชจเซ เชคเซเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ (เชชเชฐเชฟเชฃเชพเชฎ):
http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]
เชถเซเช เชคเซ เชเชพเชฎ เชเชฐเซ เชเซ?
เชนเชตเซ เชเชพเชฒเซ เชซเชเซเชค เชคเซ เช เชฐเชจเชจเซ เชซเชฟเชฒเซเชเชฐ เชเชฐเซเช เชเซ เชชเชฐเชฟเชฃเชพเชฎ เชธเชพเชฅเซ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ เชธเชซเชณเชคเชพ. เชเชพเชฒเซ เชฆเชฒเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเช &เชฌเชพเชเชพเชค เช เชจเซ เชชเชฐเชฟเชฎเชพเชฃ เชคเชฐเซเชเซ เชเชชเชฃเซ เชคเซเชจเซ เชธเชฎเชพเชจ เชจ เชนเซเชฏ เชคเซเชตเชพ เชฎเซเชฒเซเชฏเชจเซ เชฎเชพเชฐเซเช เชชเชธเชพเชฐ เชเชฐเซเชถเซเช เชธเชซเชณเชคเชพ. เชนเชพ เชนเชพ. เชกเชฌเชฒ เชจเซเชเซเชเชฟเชต เช เชธเซเชเซเชเชฎเซเชจเซเช เชเซ. เช เชฎเชจเซ เชฐเชธ เชจ เชนเซเชฏ เชคเซเชตเซ เชฆเชฐเซเช เชตเชธเซเชคเซเชจเซ เช เชฎเซ เชฌเชพเชเชพเชค เชฐเชพเชเซเช เชเซเช:
http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!='SUCCESS']
เชธเชซเชณเชจเซ เชฏเชพเชฆเซเชจเซ เชธเซเชเซเชฐเซเชจเชถเซเช
เชฌเชธ, เชฎเชพเชคเซเชฐ เชเชจเชเชฆ เชฎเชพเชเซ, เชเชพเชฒเซ เชเชพเชคเชฐเซ เชเชฐเซเช เชเซ เชซเชฟเชฒเซเชเชฐ เชเชชเชฃเชจเซ เชเซเชคเชฐเชคเซเช เชจเชฅเซ (เชซเชฟเชฒเซเชเชฐเซเชธ เชเซเชฏเชพเชฐเซเชฏ เชเซเช เซเช เชฌเซเชฒเชคเชพ เชจเชฅเซ!) เช เชจเซ "เช เชธเชซเชณ" เชฒเซเชเซเชจเซ เชธเซเชเชฟ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซเช:
http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result='SUCCESS']
เชฌเชฟเชจ-เชธเชซเชณ เชฒเซเชเซเชจเซ เชธเซเชเชฟเชจเซ เชธเซเชเซเชฐเซเชจเชถเซเช
เชฆเซเชฐเชธเซเชฅ เชธเชฐเซเชตเชฐ เชชเชฐ เชซเซเชฒเซเชกเชฐเชฎเชพเชเชฅเซ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ
เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชฎเซเชณเชตเชตเชพเชจเซ เชฌเซเชเซ เชฐเซเชค เชเซ. เชฎเชจเซ เชคเซ เชเซเชจเชเชฟเชจเซเชธ API เชจเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชเชฐเชคเชพเช เชชเชฃ เชตเชงเซ เชเชฎเซ เชเซ. เช เซเช เชเซ, เชเชพเชฐเชฃ เชเซ เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ, เชคเซ เชคเซเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ เชคเซ เชชเซเชเซเชเซเชก เช เชจเซ เชฏเซเชเซเชฏ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช. เชเซเชฎ เชเซ, เชฐเซเชชเซเชเซเชเชฐเซ เช เชเชชเซเชฒเชฟเชเซเชถเชจเชจเชพ เชตเชฐเซเชเชฟเชเช เชตเชฐเซเชเชจเชจเซ เชกเชฟเชซเซเชฒเซเช เชธเซเชเซเชฐเซเช เชเซ. เชเชฎเซ เชเซ. เชธเชพเชฐเซเช, เชเชพเชฒเซ เชคเซเชจเซ เชชเซเชเซเช เชเซ เชธเซเชเซเชฐเซเชเชฎเชพเช เชเชฏเชพ เชธเชเชธเซเชเชฐเชฃเซ เชเซ. เช เชฎเซ เชฐเชฟเชฎเซเช เชซเซเชฒเซเชกเชฐเชจเซ เชเชฐเซเชฒ, grep เช เชจเซ awk เชเชฐเซเชถเซเช. เชเซ เชเซเชเชจเซ เชตเชจเชฒเชพเชเชจเชฐเชฎเชพเช เชฐเชธ เชนเซเชฏ, เชคเซ เชคเซ เชธเซเชชเซเชเชฒเชฐ เชนเซเช เชณ เชเซ.
เชเช เชตเชพเชเซเชฏ เชเชฆเซเชถ
เชเซเชชเชพ เชเชฐเซเชจเซ เชฌเซ เชฌเชพเชฌเชคเซเชจเซ เชจเซเชเชง เชฒเซ: เชนเซเช เชนเซเชกเชฐเชฎเชพเช เชเชจเซเชเซเชถเชจ เชตเชฟเชเชคเซ เชชเชพเชธ เชเชฐเซเช เชเซเช เช
เชจเซ เชฎเชจเซ เชซเซเชฒเซเชกเชฐเชฎเชพเชเชฅเซ เชคเชฎเชพเชฎ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เช
เชจเซ เชนเซเช เชซเชเซเชค เชคเซ เช เชชเชธเชเชฆ เชเชฐเซเช เชเซเช เชเซ เชเช เชฎเชนเชฟเชจเชพเชจเซ เช
เชเชฆเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชคเชฎเชพเชฐเซ เชตเชพเชธเซเชคเชตเชฟเชเชคเชพเช เช
เชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เช
เชจเซเชฐเซเชช เชเชฆเซเชถเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเซ:
curl -H "X-JFrog-Art-Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )
เชเซเชจเชเชฟเชจเซเชธเชฎเชพเช เชเซเชฌเซเชธ เช เชจเซ เชเซเชฌ เชเชจเซเชซเชฟเชเชฐเซเชถเชจ เชซเชพเชเชฒ เชธเซเช เชเชฐเชตเซ
เช เชฎเซ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟเชจเซ เชธเซเชฐเซเชค เชถเซเชงเซ เชเชพเชขเซเชฏเซ. เชเชพเชฒเซ เชนเชตเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชธเซเชเชฟเชจเซ เชเชพเชฐเซเชฏเชฎเชพเช เชธเชพเชฎเซเชฒ เชเชฐเซเช. เชฎเชพเชฐเชพ เชฎเชพเชเซ, เชธเซเชชเชทเซเช เชเชเซเชฒ เช เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเชฟเชฒเซเชก เชเชพเชฐเซเชฏเชฎเชพเช เชเช เชชเชเชฒเซเช เชเชฎเซเชฐเชตเชพเชจเซ เชนเชคเซ. เชเซ เชชเชฐเชฟเชฃเชพเชฎ "เชธเชซเชณเชคเชพ" เชนเชคเซเช เชคเซ เชเซ เชชเชเชฒเซเช เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเชธเซเชฎเซเชฌเชฒเซ เชเชพเชฐเซเชฏ เชธเซเชเชฟเชเชเซเชธ เชเซเชฒเซ เช เชจเซ เชเซเชฌ เช เชคเชณเชฟเชฏเซ เชธเซเชเซเชฐเซเชฒ เชเชฐเซ. เชฌเชเชจเซ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ: เชฌเชฟเชฒเซเชก เชชเชเชฒเซเช เชเชฎเซเชฐเซ -> เชถเชฐเชคเซ เชชเชเชฒเซเช (เชธเชฟเชเชเชฒ). เชธเซเชเซเชช เชธเซเชเชฟเชเชเซเชธเชฎเชพเช, เชถเชฐเชค เชชเชธเชเชฆ เชเชฐเซ เชตเชฐเซเชคเชฎเชพเชจ เชฌเชฟเชฒเซเชก เชธเซเชฅเชฟเชคเชฟ, เชฎเซเชฒเซเชฏ เชธเซเช เชเชฐเซ เชธเชซเชณเชคเชพ, เชเซ เชธเชซเชณ เชฅเชพเชฏ เชคเซ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชเซเชฐเชฟเชฏเชพ เชถเซเชฒ เชเชฆเซเชถ เชเชฒเชพเชตเซ.
เช
เชจเซ เชนเชตเซ เชฎเชเชพ เชญเชพเช. เชเซเชจเชเชฟเชจเซเชธ เชเซเชฌ เชเชจเซเชซเชฟเชเชฐเซเชถเชจเชจเซ เชซเชพเชเชฒเซเชฎเชพเช เชธเซเชเซเชฐ เชเชฐเซ เชเซ. XML เชซเซเชฐเซเชฎเซเชเชฎเชพเช. เชฐเชธเซเชคเชพเชฎเชพเช http://ะฟััั-ะดะพ-ะทะฐะดะฐะฝะธั/config.xml
เชคเชฆเชจเซเชธเชพเชฐ, เชคเชฎเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเชจเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชถเชเซ เชเซ, เชคเซเชจเซ เชเชตเชถเซเชฏเชเชคเชพ เชฎเซเชเชฌ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเซ เชถเชเซ เชเซ เช
เชจเซ เชคเซเชจเซ เชเซเชฏเชพเชเชฅเซ เชฎเชณเซ เชคเซเชฏเชพเช เชคเซเชจเซ เชชเชพเชเซเช เชฎเซเชเซ เชถเชเซ เชเซ.
เชฏเชพเชฆ เชฐเชพเชเซ, เช เชฎเซ เชเชชเชฐ เชธเชเชฎเชค เชฅเชฏเชพ เชเซเช เชเซ เช เชฎเซ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชฎเชพเชเซ เชเช เชชเชฐเชฟเชฎเชพเชฃ เชฌเชจเชพเชตเซเชถเซเช BUILD_VERSION?
เชเชพเชฒเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชกเชพเชเชจเชฒเซเชก เชเชฐเซเช เช เชจเซ เชคเซเชจเซ เช เชเชฆเชฐ เชเช เชจเชเชฐ เชเชฐเซเช. เชซเชเซเชค เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซ เชชเชฐเชฟเชฎเชพเชฃ เชธเซเชฅเชพเชจเซ เชเซ เช เชจเซ เชเชเซเชเชฟเชค เชชเซเชฐเชเชพเชฐเชจเซเช เชเซ.
เชธเซเชชเซเชเชฒเชฐ เชนเซเช เชณ เชธเซเชเซเชฐเซเชจเชถเซเช.
เชคเชฎเชพเชฐเซเช config.xml เชซเซเชฐเซเชเชฎเซเชจเซเช เชธเชฎเชพเชจ เชฆเซเชเชพเชตเซเช เชเซเชเช. เชธเชฟเชตเชพเชฏ เชเซ เชชเชธเชเชฆเชเซเชจเชพ เชคเชคเซเชตเชจเซ เชธเชพเชฎเชเซเชฐเซ เชนเชเซ เชเซเชเซ เชเซ
เชถเซเช เชคเชฎเชจเซ เชเชพเชคเชฐเซ เชเซ? เชฌเชธ, เชเชพเชฒเซ เชเช เชธเซเชเซเชฐเชฟเชชเซเช เชฒเชเซเช เชเซ เชฌเชฟเชฒเซเชก เชธเชซเชณ เชฅเชพเชฏ เชคเซ เช
เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชธเซเชเซเชฐเชฟเชชเซเช เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชฎเซเชณเชตเชถเซ, เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชกเชพเชเชจเชฒเซเชก เชเชฐเชถเซ, เช
เชฎเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชฏเชพเช เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชฒเชเชถเซ เช
เชจเซ เชชเชเซ เชคเซเชจเซ เชชเชพเชเซเช เชฎเซเชเชถเซ. เชนเชพ. เชคเซ เชธเชพเชเซเช เชเซ. XML เชฎเชพเช เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชฒเชเซ เชเซเชฏเชพเช เชชเชนเซเชฒเชพเชฅเซ เช เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชเซ (เชธเซเชเซเชฐเซเชชเซเชเชจเชพ เชชเซเชฐเชฅเชฎ เชฒเซเชเช เชชเชเซ เชญเชตเชฟเชทเซเชฏเชฎเชพเช เชนเชถเซ). เชนเซเช เชเชพเชฃเซเช เชเซเช เชเซ เชตเชฟเชถเซเชตเชฎเชพเช เชนเชเซ เชชเชฃ เชจเชฟเชฏเชฎเชฟเชค เช
เชญเชฟเชตเซเชฏเชเซเชคเชฟเชจเชพ เชเชเซเชฐ เชเชพเชนเชเซ เชเซ. เชนเซเช เชคเซเชฎเชจเซ เชจเชฅเซ. เชเซเชชเชพ เชเชฐเซเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
เชธเซเชชเซเชเชฒเชฐ เชนเซเช เชณ, เชนเซเช เชเซเชก เชฐเชเซ เชเชฐเซเช เชเซเช เชเซ เชเชชเชฐเซเชเซเชค เชเซเชฐเชฎเชจเซ เชคเซเชจเซ เชธเชเชชเซเชฐเซเชฃเชคเชพเชฎเชพเช เชเชฐเซ เชเซ.
เชฐเชฟเชฎเซเช เชธเชฐเซเชตเชฐ เชชเชฐเชจเชพ เชซเซเชฒเซเชกเชฐเชฎเชพเชเชฅเซ เชฐเซเชชเชฐเซเชเชพ เชชเชฐ เชเชตเซเชคเซเชคเชฟเชเชจเซ เชฏเชพเชฆเซ เชฒเชเซ
#!/bin/bash
############## ะกะบะฐัะธะฒะฐะตะผ ะบะพะฝัะธะณ
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml
############## ะฃะดะฐะปัะตะผ ะธ ะทะฐะฝะพะฒะพ ัะพะทะดะฐะตะผ xml-ัะปะตะผะตะฝั ะดะปั ัะฟะธัะบะฐ ะฒะตััะธะน
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml
xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml
############## ะงะธัะฐะตะผ ะฒ ะผะฐััะธะฒ ัะฟะธัะพะบ ะฒะตััะธะน ะธะท ัะตะฟะพะทะธัะพัะธั
readarray -t vers < <( curl -H "X-JFrog-Art-Api:Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )
############## ะะธัะตะผ ะผะฐััะธะฒ ัะปะตะผะตะฝั ะทะฐ ัะปะตะผะตะฝัะพะผ ะฒ ะบะพะฝัะธะณ
printf '%sn' "${vers[@]}" | sort -r |
while IFS= read -r line
do
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
done
############## ะะปะฐะดะตะผ ะบะพะฝัะธะณ ะฒะทะฐะด
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml
############## ะัะธะฒะพะดะธะผ ัะฐะฑะพัะตะต ะผะตััะพ ะฒ ะฟะพััะดะพะบ
rm -f appConfig.xml
เชเซ เชคเชฎเซ เชเซเชจเชเชฟเชจเซเชธ เชชเชพเชธเซเชฅเซ เชธเชเชธเซเชเชฐเชฃเซ เชฎเซเชณเชตเชตเชพเชจเซ เชตเชฟเชเชฒเซเชช เชชเชธเชเชฆ เชเชฐเซ เชเซ เช เชจเซ เชคเชฎเซ เชฎเชพเชฐเชพ เชเซเชตเชพ เชเชณเชธเซ เชเซ, เชคเซ เชชเชเซ เชธเซเชชเซเชเชฒเชฐ เชนเซเช เชณ เชธเชฎเชพเชจ เชเซเชก เชเซ, เชชเชฐเชเชคเซ เชเซเชจเชเชฟเชจเซเชธ เชคเชฐเชซเชฅเซ เชธเซเชเชฟ:
เชเซเชจเชเชฟเชจเซเชธเชฅเซ เชฐเซเชชเชฐเซเชเชพ เชธเซเชงเซเชจเชพ เชธเชเชธเซเชเชฐเชฃเซเชจเซ เชธเซเชเชฟ เชฒเชเซ
เชซเชเซเชค เชเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฐเชพเชเซ: เชฎเชพเชฐเชพ เชเชธเซเชฎเซเชฌเชฒเซ เชจเชพเชฎเชฎเชพเช เชเซเชฐเชฎ เชจเชเชฌเชฐ เช
เชจเซ เชธเชเชธเซเชเชฐเชฃ เชจเชเชฌเชฐ เชนเซเชฏ เชเซ, เชเซ เชเซเชฒเซเชจ เชฆเซเชตเชพเชฐเชพ เช
เชฒเช เชชเชกเซ เชเซ. เชคเชฆเชจเซเชธเชพเชฐ, awk เชฌเชฟเชจเชเชฐเซเชฐเซ เชญเชพเชเชจเซ เชเชพเชชเซ เชจเชพเชเซ เชเซ. เชคเชฎเชพเชฐเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เช
เชจเซเชฐเซเชช เช เชฐเซเชเชพ เชฌเชฆเชฒเซ.
#!/bin/bash
############## ะกะบะฐัะธะฒะฐะตะผ ะบะพะฝัะธะณ
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml
############## ะฃะดะฐะปัะตะผ ะธ ะทะฐะฝะพะฒะพ ัะพะทะดะฐะตะผ xml-ัะปะตะผะตะฝั ะดะปั ัะฟะธัะบะฐ ะฒะตััะธะน
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml
xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml
############## ะะธัะตะผ ะฒ ัะฐะนะป ัะฟะธัะพะบ ะฒะตััะธะน ะธะท Jenkins
curl -g -X GET -u username:apiKey 'http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!=%22SUCCESS%22]&pretty=true' -o builds.xml
############## ะงะธัะฐะตะผ ะฒ ะผะฐััะธะฒ ัะฟะธัะพะบ ะฒะตััะธะน ะธะท XML
readarray vers < <(xmlstarlet sel -t -v "freeStyleProject/allBuild/displayName" builds.xml | awk -F":" '{print $2}')
############## ะะธัะตะผ ะผะฐััะธะฒ ัะปะตะผะตะฝั ะทะฐ ัะปะตะผะตะฝัะพะผ ะฒ ะบะพะฝัะธะณ
printf '%sn' "${vers[@]}" | sort -r |
while IFS= read -r line
do
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
done
############## ะะปะฐะดะตะผ ะบะพะฝัะธะณ ะฒะทะฐะด
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml
############## ะัะธะฒะพะดะธะผ ัะฐะฑะพัะตะต ะผะตััะพ ะฒ ะฟะพััะดะพะบ
rm -f appConfig.xml
เชธเชฟเชฆเซเชงเชพเชเชคเชฎเชพเช, เชเซ เชคเชฎเซ เชเชชเชฐเชจเชพ เชเชฆเชพเชนเชฐเชฃเซเชจเชพ เชเชงเชพเชฐเซ เชฒเชเซเชฒเชพ เชเซเชกเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซเชฏเซเช เชเซ, เชคเซ เชเชฎเชพเชตเช เชเชพเชฐเซเชฏเชฎเชพเช เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชชเชนเซเชฒเชพเชฅเซ เช เชธเชเชธเซเชเชฐเชฃเซ เชธเชพเชฅเซ เชกเซเชฐเซเชช-เชกเชพเชเชจ เชธเซเชเชฟ เชนเซเชตเซ เชเซเชเช. เชคเซ เชธเซเชชเซเชเชฒเชฐ เชนเซเช เชณเชจเชพ เชธเซเชเซเชฐเซเชจเชถเซเชเชฎเชพเช เชเซเชตเซเช เชเซ.
เชเชตเซเชคเซเชคเชฟเชเชจเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชชเซเชฐเซเชฃ เชเชฐเซเชฒเซ เชธเซเชเชฟ
เชเซ เชฌเชงเซเช เชเชพเชฎ เชเชฐเซ เชเซ, เชคเซ เชชเชเซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเซเชชเซ-เชชเซเชธเซเช เชเชฐเซ เชถเซเชฒ เชเชฆเซเชถ เชเชฒเชพเชตเซ เช เชจเซ เชซเซเชฐเชซเชพเชฐเซ เชธเชพเชเชตเซ.
เชเซเชฒเชพเชเชก เชถเซเชฒ เชธเชพเชฅเซ เชเชจเซเชเซเช เชฅเช เชฐเชนเซเชฏเซเช เชเซ
เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชเชฒเซเชเซเชเชฐเซเชธ เชเซ. เช เชฎเซ เช เชฎเชพเชฐเชพ เชเชชเซเชฒเชฟเชเซเชถเชจ เชกเชฟเชฒเชฟเชตเชฐเซ เชเซเชฒ เช เชจเซ เชเชจเซเชซเชฟเชเชฐเซเชถเชจ เชฎเซเชจเซเชเชฐ เชคเชฐเซเชเซ Ansible เชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช. เชคเชฆเชจเซเชธเชพเชฐ, เชเซเชฏเชพเชฐเซ เชเชจเซเชเซเชจเชฐ เชฌเชจเชพเชตเชตเชพเชจเซ เชตเชพเชค เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเซเชฐเชฃ เชตเชฟเชเชฒเซเชชเซ เชงเซเชฏเชพเชจเชฎเชพเช เชเชตเซ เชเซ: เชกเซเชเชฐเชฎเชพเช เชกเซเชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ, เชเชจเซเชธเชฟเชฌเชฒ เชเชพเชฒเชคเชพ เชฎเชถเซเชจ เชชเชฐ เชกเซเชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เช เชฅเชตเชพ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒเชฎเชพเช เชเชจเซเชเซเชจเชฐ เชฌเชจเชพเชตเซ. เช เชฎเซ เช เชฒเซเชเชฎเชพเช เชเซเชจเชเชฟเชจเซเชธ เชฎเชพเชเซเชจเชพ เชชเซเชฒเชเชเชจเซเชธ เชตเชฟเชถเซ เชฎเซเชจ เชฐเชนเซเชตเชพ เชธเชเชฎเชค เชฅเชฏเชพ เชเซเช. เชฏเชพเชฆ เชเซ?
เชฎเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช: เชธเชพเชฐเซเช, เชเชพเชฐเชฃ เชเซ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒเชฎเชพเช เชเชจเซเชเซเชจเชฐ "เชฌเซเชเซเชธเชจเซ เชฌเชนเชพเชฐ" เชเชเชคเซเชฐเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชคเซ เชชเชเซ เชถเชพ เชฎเชพเชเซ เชเชฟเชเชคเชพ เชเชฐเชตเซ? เชคเซเชจเซ เชธเซเชตเชเซเช เชฐเชพเชเซ เชจเซ? เชนเซเช เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒเชฎเชพเช เชเซเชจเชเชฟเชจเซเชธ เชเชจเซเชเซเชจเชฐ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช, เช เชจเซ เชชเชเซ เชคเซเชฎเชจเซ เชคเซเชฏเชพเชเชฅเซ เชเซเชฏเซเชฌเชฐเชฎเชพเช เชฒเซเชเช เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช. เชตเชงเซเชฎเชพเช, Google เชคเซเชจเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชฎเชพเช เชเซเชฌ เช เชธเชฎเซเชฆเซเชง เชเซเชจเชฒเซ เชงเชฐเชพเชตเซ เชเซ, เชเซ เชเชฎเชพเชตเชเชจเซ เชเชกเชช เชชเชฐ เชซเชพเชฏเชฆเชพเชเชพเชฐเช เช เชธเชฐ เชเชฐเชถเซ.
เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒเชฅเซ เชเชจเซเชเซเช เชฅเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชฌเซ เชตเชธเซเชคเซเชเชจเซ เชเชฐเซเชฐ เชเซ: gCloud เช เชจเซ เชเชเซเชธเซเชธ เช เชงเชฟเชเชพเชฐเซ Google Cloud API VM เชเชฆเชพเชนเชฐเชฃ เชฎเชพเชเซ เชเซ เชเซเชฎเชพเชเชฅเซ เช เช เชเซเชกเชพเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเซเช เชเซเชเชฒ เชเซเชฒเชพเชเชกเชฅเซ เชฌเชฟเชฒเชเซเชฒ เชเชจเซเชเซเช เชจ เชฅเชตเชพเชจเซเช เชตเชฟเชเชพเชฐเซ เชเซ
Google เชคเซเชจเซ เชธเซเชตเชพเชเชฎเชพเช เชเชจเซเชเชฐเซเชเซเชเชฟเชต เช
เชงเชฟเชเซเชคเชคเชพเชจเซ เช
เชเซเชทเชฎ เชเชฐเชตเชพเชจเซ เชถเชเซเชฏเชคเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เช เชคเชฎเชจเซ เชเซเชซเซ เชฎเชถเซเชจเชฎเชพเชเชฅเซ เชชเชฃ เชเชจเซเชธเซเชฒ เชธเชพเชฅเซ เชเซเชกเชพเชตเชพ เชฎเชพเชเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเชถเซ, เชเซ เชคเซ *nix เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชนเซเชฏ เช
เชจเซ เชคเซเชฎเชพเช เชเชจเซเชธเซเชฒ เชนเซเชฏ.
เชเซ เชฎเชจเซ เช เชจเซเชเชงเชจเชพ เชฎเชพเชณเชเชพเชฎเชพเช เช เชฎเซเชฆเซเชฆเชพเชจเซ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชเชตเชฐเซ เชฒเซเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ เชเชฟเชชเซเชชเชฃเซเชเชฎเชพเช เชฒเชเซ. เชเซ เช เชฎเชจเซ เชชเซเชฐเชคเชพ เชฎเชค เชฎเชณเชถเซ, เชคเซ เชนเซเช เช เชตเชฟเชทเชฏ เชชเชฐ เช เชชเชกเซเช เชฒเชเซเชถ.
เช เชงเชฟเชเชพเชฐเซ เชเชชเชตเชพเชจเซ เชธเซเชฅเซ เชธเชนเซเชฒเซ เชฐเชธเซเชคเซ เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธ เชฆเซเชตเชพเชฐเชพ เชเซ.
- VM เชเชฆเชพเชนเชฐเชฃเชจเซ เชฐเซเชเซ เชเซ เชเซเชฎเชพเชเชฅเซ เชคเชฎเซ เชชเชเซเชฅเซ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒ เชธเชพเชฅเซ เชเชจเซเชเซเช เชฅเชถเซ.
- เชฆเชพเชเชฒเชพเชจเซ เชตเชฟเชเชคเซ เชเซเชฒเซ เช เชจเซ เชเซเชฒเชฟเช เชเชฐเซ เชธเซเชงเชพเชฐเซ.
- เชชเซเชทเซเช เชจเชพ เชเซเชฌ เช เชคเชณเชฟเชฏเซ, เชเชจเซเชธเซเชเชจเซเชธ เชเชเซเชธเซเชธ เชธเซเชเซเชช เชชเชธเชเชฆ เชเชฐเซ เชคเชฎเชพเชฎ เชเซเชฒเชพเชเชก API เชจเซ เชธเชเชชเซเชฐเซเชฃ เชเชเซเชธเซเชธ.
เชธเซเชเซเชฐเซเชจเชถเซเช
- เชคเชฎเชพเชฐเชพ เชซเซเชฐเชซเชพเชฐเซ เชธเชพเชเชตเซ เช เชจเซ เชฆเชพเชเชฒเซ เชฒเซเชเช เชเชฐเซ.
เชเชเชตเชพเชฐ VM เชฒเซเชก เชเชฐเชตเชพเชจเซเช เชธเชฎเชพเชชเซเชค เชเชฐเซ เชฒเซ, เชชเชเซ เชคเซเชจเซ SSH เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเช เชเชฐเซ เช เชจเซ เชเชพเชคเชฐเซ เชเชฐเซ เชเซ เชเชจเซเชเซเชถเชจ เชญเซเชฒ เชตเชฟเชจเชพ เชฅเชพเชฏ เชเซ. เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซ:
gcloud alpha cloud-shell ssh
เชธเชซเชณ เชเชจเซเชเซเชถเชจ เชเชเชเช เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ
GKE เชฎเชพเช เชเชฎเชพเชตเช เชเชฐเซ
เช เชฎเซ IaC (เชเซเชก เชคเชฐเซเชเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ) เชชเชฐ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชธเซเชตเชฟเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฆเชฐเซเช เชธเชเชญเชตเชฟเชค เชฐเซเชคเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพ เชนเซเชตเชพเชฅเซ, เช เชฎเชพเชฐเซ เชกเซเชเชฐ เชซเชพเชเชฒเซ Git เชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซ. เช เชเช เชคเชฐเชซ เชเซ. เช เชจเซ kubernetes เชฎเชพเช เชเชฎเชพเชตเช yaml เชซเชพเชเชฒ เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเชฃเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซเชจเซ เชเชชเชฏเซเช เชซเชเซเชค เช เชเชพเชฐเซเชฏ เชฆเซเชตเชพเชฐเชพ เชฅเชพเชฏ เชเซ, เชเซ เชชเซเชคเซ เชชเชฃ เชเซเชก เชเซเชตเซเช เชเซ. เช เชฌเซเชเซ เชฌเชพเชเซเชฅเซ เชเซ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชฎเชพเชฐเซ เชฎเชคเชฒเชฌ, เชฏเซเชเชจเชพ เช เชเซ:
- เชเชชเชฃเซ เชเชฒเซเชจเซ เชเชฟเชเชฎเชคเซ เชฒเชเช เชเซเช BUILD_VERSION เช เชจเซ, เชตเซเชเชฒเซเชชเชฟเช เชฐเซเชคเซ, เชเชฒเซเชจเซ เชเชฟเชเชฎเชคเซ เชเซเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชถเซ ENV.
- เชเชฟเชเชฎเชพเชเชฅเซ เชกเซเชเชฐเชซเชพเชเชฒ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ.
- เชเชฎเชพเชตเช เชฎเชพเชเซ yaml เชเชจเชฐเซเช เชเชฐเซ.
- เช เชฎเซ เช เชฌเชเชจเซ เชซเชพเชเชฒเซเชจเซ scp เชฆเซเชตเชพเชฐเชพ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒ เชชเชฐ เช เชชเชฒเซเชก เชเชฐเซเช เชเซเช.
- เช เชฎเซ เชคเซเชฏเชพเช เชเช เชเชจเซเชเซเชจเชฐ เชฌเชจเชพเชตเซเช เชเซเช เช เชจเซ เชคเซเชจเซ เชเชจเซเชเซเชจเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช เชฆเชฌเชพเชฃ เชเชฐเซเช เชเซเช
- เช เชฎเซ เชเซเชฏเซเชฌเชฐ เชชเชฐ เชฒเซเชก เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชซเชพเชเชฒ เชฒเชพเชเซ เชเชฐเซเช เชเซเช.
เชเชพเชฒเซ เชตเชงเซ เชเซเชเซเชเชธ เชฌเชจเซเช. เชเชเชตเชพเชฐ เช เชฎเซ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช ENV, เชชเชเซ เชงเชพเชฐเซ เชเซ เชเชชเชฃเซ เชฌเซ เชชเชฐเชฟเชฎเชพเชฃเซเชจเชพ เชฎเซเชฒเซเชฏเซ เชชเชธเชพเชฐ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ: PARAM1 ะธ PARAM2. เช เชฎเซ เชเชฎเชพเชตเช เชฎเชพเชเซ เชคเซเชฎเชจเซเช เชเชพเชฐเซเชฏ เชเชฎเซเชฐเซเช เชเซเช, เชชเซเชฐเชเชพเชฐ - เชถเชฌเซเชฆเชฎเชพเชณเชพ เชชเชฐเชฟเชฎเชพเชฃ.
เชธเซเชเซเชฐเซเชจเชถเซเช
เช เชฎเซ เชธเชฐเชณ เชฐเซเชกเชพเชฏเชฐเซเชเซเชถเชจ เชธเชพเชฅเซ yaml เชเชจเชฐเซเช เชเชฐเซเชถเซเช เชเชเซ เชซเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ. เชเชตเซเช เชฎเชพเชจเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ, เช เชฒเชฌเชคเซเชค, เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชคเชฎเชพเชฐเซ เชกเซเชเชฐเชซเชพเชเชฒเชฎเชพเช เชเซ PARAM1 ะธ PARAM2เชเซ เชฒเซเชก เชจเชพเชฎ เชนเชถเซ awesomeapp, เช เชจเซ เชเชฒเซเชฒเซเชเชฟเชค เชธเชเชธเซเชเชฐเชฃเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเชพเชฅเซ เชเชธเซเชฎเซเชฌเชฒ เชเชจเซเชเซเชจเชฐ เชเชตเซเชฒเซเช เชเซ เชเชจเซเชเซเชจเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซ เชฐเชธเซเชคเชพเชฎเชพ gcr.io/awesomeapp/awesomeapp-$BUILD_VERSIONเชเซเชฏเชพเช $BUILD_VERSION เชนเชฎเชฃเชพเช เช เชกเซเชฐเซเชช-เชกเชพเชเชจ เชธเซเชเชฟเชฎเชพเชเชฅเซ เชชเชธเชเชฆ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช.
เชเซเชฎ เชฏเชพเชฆเซ
touch deploy.yaml
echo "apiVersion: apps/v1" >> deploy.yaml
echo "kind: Deployment" >> deploy.yaml
echo "metadata:" >> deploy.yaml
echo " name: awesomeapp" >> deploy.yaml
echo "spec:" >> deploy.yaml
echo " replicas: 1" >> deploy.yaml
echo " selector:" >> deploy.yaml
echo " matchLabels:" >> deploy.yaml
echo " run: awesomeapp" >> deploy.yaml
echo " template:" >> deploy.yaml
echo " metadata:" >> deploy.yaml
echo " labels:" >> deploy.yaml
echo " run: awesomeapp" >> deploy.yaml
echo " spec:" >> deploy.yaml
echo " containers:" >> deploy.yaml
echo " - name: awesomeapp" >> deploy.yaml
echo " image: gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION:latest" >> deploy.yaml
echo " env:" >> deploy.yaml
echo " - name: PARAM1" >> deploy.yaml
echo " value: $PARAM1" >> deploy.yaml
echo " - name: PARAM2" >> deploy.yaml
echo " value: $PARAM2" >> deploy.yaml
เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชจเซเชเซเช เชเชฐเซเชฏเชพ เชชเชเซ เชเซเชจเชเชฟเชจเซเชธ เชเชเชจเซเช gcloud alpha cloud-shell ssh เชเชจเซเชเชฐเซเชเซเชเชฟเชต เชฎเซเชก เชเชชเชฒเชฌเซเชง เชจเชฅเซ, เชคเซเชฅเซ เช เชฎเซ เชชเซเชฐเชพเชฎเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒเชจเซ เชเชฆเซเชถเซ เชฎเซเชเชฒเซเช เชเซเช --เชเชฆเซเชถ.
เช เชฎเซ เชเซเชจเซ เชกเซเชเชฐเชซเชพเชเชฒเชฎเชพเชเชฅเซ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒเชฎเชพเช เชนเซเชฎ เชซเซเชฒเซเชกเชฐเชจเซ เชธเชพเชซ เชเชฐเซเช เชเซเช:
gcloud alpha cloud-shell ssh --command="rm -f Dockerfile"
scp เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชฒเชพเชเชก เชเชจเซเชธเซเชฒเชจเชพ เชนเซเชฎ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชคเชพเชเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเซเชฒเซ เชกเซเชเชฐเชซเชพเชเชฒ เชฎเซเชเซ:
gcloud alpha cloud-shell scp localhost:./Dockerfile cloudshell:~
เช เชฎเซ เชเชจเซเชเซเชจเชฐเชจเซ เชเชจเซเชเซเชจเชฐ เชฐเชเชฟเชธเซเชเซเชฐเซเชฎเชพเช เชเชเชคเซเชฐเชฟเชค เชเชฐเซเช เชเซเช, เชเซเช เชเชฐเซเช เชเซเช เช เชจเซ เชฆเชฌเชพเชฃ เชเชฐเซเช เชเซเช:
gcloud alpha cloud-shell ssh --command="docker build -t awesomeapp-$BUILD_VERSION ./ --build-arg BUILD_VERSION=$BUILD_VERSION --no-cache"
gcloud alpha cloud-shell ssh --command="docker tag awesomeapp-$BUILD_VERSION gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"
gcloud alpha cloud-shell ssh --command="docker push gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"
เช เชฎเซ เชเชฎเชพเชตเช เชซเชพเชเชฒ เชธเชพเชฅเซ เชคเซ เช เชเชฐเซเช เชเซเช. เชฎเชนเซเชฐเชฌเชพเชจเซ เชเชฐเซเชจเซ เชจเซเชเชง เชเชฐเซ เชเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเซ เชเซเชฒเชธเซเชเชฐเชจเชพ เชเชพเชฒเซเชชเชจเชฟเช เชจเชพเชฎเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชเซเชฏเชพเช เชเชฎเชพเชตเช เชฅเชพเชฏ เชเซ (awsm-เชเซเชฒเชธเซเชเชฐ) เช เชจเซ เชชเซเชฐเซเชเซเชเซเช เชจเชพเชฎ (เช เชฆเซเชญเซเชค-เชชเซเชฐเซเชเซเชเซเช), เชเซเชฏเชพเช เชเซเชฒเชธเซเชเชฐ เชธเซเชฅเชฟเชค เชเซ.
gcloud alpha cloud-shell ssh --command="rm -f deploy.yaml"
gcloud alpha cloud-shell scp localhost:./deploy.yaml cloudshell:~
gcloud alpha cloud-shell ssh --command="gcloud container clusters get-credentials awsm-cluster --zone us-central1-c --project awesome-project &&
kubectl apply -f deploy.yaml"
เช เชฎเซ เชเชพเชฐเซเชฏ เชเชฒเชพเชตเซเช เชเซเช, เชเชจเซเชธเซเชฒ เชเชเชเชชเซเช เชเซเชฒเซเช เชเซเช เช เชจเซ เชเชจเซเชเซเชจเชฐเชจเซ เชธเชซเชณ เชเชธเซเชฎเซเชฌเชฒเซ เชเซเชตเชพเชจเซ เชเชถเชพ เชฐเชพเชเซเช เชเซเช.
เชธเซเชเซเชฐเซเชจเชถเซเช
เช เชจเซ เชชเชเซ เชเชธเซเชฎเซเชฌเชฒ เชเชจเซเชเซเชจเชฐเชจเซ เชธเชซเชณ เชเชฎเชพเชตเช
เชธเซเชเซเชฐเซเชจเชถเซเช
เชฎเซเช เชเชฐเชพเชฆเชพเชชเซเชฐเซเชตเช เชธเซเชเชฟเชเชเชจเซ เช เชตเชเชฃเซเชฏเซเช เชชเซเชฐเชตเซเชถ. เชเช เชธเชฐเชณ เชเชพเชฐเชฃเซเชธเชฐ: เชเชเชตเชพเชฐ เชคเชฎเซ เชคเซเชจเซ เชธเซเช เชเชฐเซ เชฒเซ เชตเชฐเซเชเชฒเซเชก เชเชชเซเชฒ เชจเชพเชฎ เชธเชพเชฅเซ, เชคเซ เชเชพเชฐเซเชฏเชฐเชค เชฐเชนเซเชถเซ, เชชเชเซ เชญเชฒเซ เชคเชฎเซ เช เชจเชพเชฎ เชธเชพเชฅเซ เชเซเชเชฒเซ เชเชฎเชพเชตเช เชเชฐเซ. เชธเชพเชฐเซเช, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เช เชเชคเชฟเชนเชพเชธเชจเชพ เช เชตเชเชพเชถเชจเซ เชฌเชนเชพเชฐ เชฅเซเชกเซเช เชเซ.
เชคเชพเชฐเชฃเซเชจเซ เชฌเชฆเชฒเซ
เชเชชเชฐเซเชเซเชค เชคเชฎเชพเชฎ เชชเชเชฒเชพเช เชเชฆเชพเช เชฅเช เชถเชเซเชฏเชพ เชจ เชนเซเชค, เชชเชฐเชเชคเซ เชเซเชจเชเชฟเชจเซเชธ, เชคเซเชฎเชจเชพ เชฎเซเชฏเซเชฏเซเชฒเชฟเชฏเชจ เชฎเชพเชเซ เชซเชเซเชค เชเซเชเชฒเชพเช เชชเซเชฒเชเชเชจ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเชพ. เชชเชฐเชเชคเซ เชเซเชเชฒเชพเช เชเชพเชฐเชฃเซเชธเชฐ เชฎเชจเซ เชชเซเชฒเชเชเชจเซเชธ เชชเชธเชเชฆ เชจเชฅเซ. เชธเชพเชฐเซเช, เชตเชงเซ เชธเซเชชเชทเซเช เชฐเซเชคเซ, เชนเซเช เชซเชเซเชค เชนเชคเชพเชถเชพเชฅเซ เช เชคเซเชฎเชจเซ เชเชถเชฐเซ เชฒเชเช เชเซเช.
เช
เชจเซ เชนเซเช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชเซเช เชจเชตเซ เชตเชฟเชทเชฏ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซเช เชชเชธเชเชฆ เชเชฐเซเช เชเซเช. เชเชชเชฐเซเชเซเชค เชเซเชเซเชธเซเช เช เชคเชพเชฐเชฃเซ เชถเซเชฐ เชเชฐเชตเชพเชจเซ เชเช เชฐเซเชค เชเซ เชเซ เชฎเซเช เชถเชฐเซเชเชคเชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชธเชฎเชธเซเชฏเชพเชจเซเช เชจเชฟเชฐเชพเชเชฐเชฃ เชเชฐเชคเซ เชตเชเชคเซ เชเชฐเซ เชนเชคเซ. เชคเซ เชฒเซเชเซ เชธเชพเชฅเซ เชถเซเชฐ เชเชฐเซ เชเซเช เชคเซเชฎเชจเชพ เชเซเชตเชพ, เชกเซเชตเซเชชเซเชธเชฎเชพเช เชญเชฏเชเชเชฐ เชตเชฐเซ เชจเชฅเซ. เชเซ เชฎเชพเชฐเชพ เชคเชพเชฐเชฃเซ เชเชเชพเชฎเชพเช เชเชเชพ เชเซเชเชจเซ เชฎเชฆเชฆ เชเชฐเซ เชเซ, เชคเซ เชนเซเช เชเซเชถ เชฅเชเชถ.
เชธเซเชฐเซเชธ: www.habr.com