เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒ static เบขเบนเปˆเปƒเบ™ Cloudflare Workers Sites

เบชเบฐเบšเบฒเบเบ”เบต! เบ‚เป‰เบญเบเบŠเบทเปˆ Dima, เบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบซเบปเบงเบซเบ™เป‰เบฒเบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™ SysOps เบขเบนเปˆ Wrike. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™ 10 เบ™เบฒเบ—เบตเปเบฅเบฐ 5 เป‚เบ”เบฅเบฒเบ•เปเปˆเป€เบ”เบทเบญเบ™เปเบฅเบฐเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™. เบšเบปเบ”เบ„เบงเบฒเบกเบกเบตเป€เบเบทเบญเบšเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบžเบฒเบเปƒเบ™เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบ เปเบฅเบฐเบ„เบงเบฒเบกเบ›เบฐเบ—เบฑเบšเปƒเบˆเบ—เบตเปˆเป„เบ”เป‰เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเป€เบ—เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเปƒเปเปˆเบชเบณเบฅเบฑเบšเบ‚เป‰เบญเบ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบญเบฐเบ—เบดเบšเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบžเบทเปˆเบญเบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบธเบ. เป„เบ›!

เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒ static เบขเบนเปˆเปƒเบ™ Cloudflare Workers Sites

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบšเบฒเบ‡เบ—เบตเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบฅเบฒเบ„เบฒเบ–เบทเบเบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒ. เบšเบฒเบ‡เบ—เบตเปเบกเปˆเบ™เบšเปเปˆเป€เบชเบเบ„เปˆเบฒ, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™เบ™เบตเป‰ เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบเบดเปˆเบ‡โ€‹เปƒเบซเบเปˆโ€‹.

เปเบ•เปˆเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ—เปˆเบฒเบ™เบเบฑเบ‡เป€เบšเบทเปˆเบญเปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเปเบฒเบœเบฑเบ”เบเบฑเบšเป‚เบฅเบเปƒเบซเบกเปˆเบ—เบตเปˆเบเป‰เบฒเบซเบฒเบ™เบ‚เบญเบ‡เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบต? เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเป„เบ›เปƒเบŠเป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเปƒเบซเป‰เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบšเป? เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰ Hugo, เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ Gitlab CI / CD เบชเปเบฒเบฅเบฑเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบ•เปˆเบงเปˆเบฒเบเบฒเบ™เป€เบฅเบฑเปˆเบ‡? เปƒเบซเป‰เปƒเบŠเป‰เป€เบงเบฑเบšเป„เบŠเป‚เบ”เบเบเบปเบ‡เบเบฑเบš Cloudflare เป‚เบ”เบเปƒเบŠเป‰ เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™:

เบชเปˆเบงเบ™เบ—เบต 1: เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Hugo

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบต Hugo เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเป‰เบง, เบซเบผเบทเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบญเบฑเบ™เปƒเบ”เบญเบฑเบ™เบซเบ™เบถเปˆเบ‡), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เป‰เบฒเบกเบชเปˆเบงเบ™เบ™เบตเป‰เป„เบ”เป‰.

  1. เบ”เบฒเบงเป‚เบซเบฅเบ” Hugo เบˆเบฒเบ https://github.com/gohugoio/hugo/releases

  2. เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰ Hugo เบ•เบฒเบกเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ PATH เบงเบดเบ—เบต

  3. เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเปƒเปเปˆ: hugo new site blog.example.com

  4. เบ›เปˆเบฝเบ™เป„เบ”เป€เบฃเบฑเบเบ—เปเบฃเบตเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเปเปˆ: cd blog.example.com

  5. เป€เบฅเบทเบญเบโ€‹เบซเบปเบงโ€‹เบ‚เปเป‰โ€‹เบเบฒเบ™โ€‹เบญเบญเบโ€‹เปเบšเบš (https://github.com/budparr/gohugo-theme-ananke/releases เบซเบผเบทเปƒเบ”เบเปเปˆเบ•เบฒเบก)

  6. เบ‚เปเปƒเบซเป‰เบชเป‰เบฒเบ‡เบšเบปเบ”เบ—เปเบฒเบญเบดเบ”: hugo new posts/my-amazing-post.md

  7. เป€เบžเบตเปˆเบกเป€เบ™เบทเป‰เบญเบซเบฒเปƒเบชเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™: content/posts/my-amazing-post.md.
    เป€เบกเบทเปˆเบญเบ—เบธเบเบขเปˆเบฒเบ‡เบชเบณเป€เบฅเบฑเบ”เปเบฅเป‰เบง, เปƒเบซเป‰เบ›เปˆเบฝเบ™เบ„เปˆเบฒเบฎเปˆเบฒเบ‡เป€เบ›เบฑเบ™ เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡

  8. เบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบ„เบปเบ‡เบ—เบตเปˆ: hugo -D

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต ./เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ เปเบฅเบฐเบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบนเปˆเบกเบทเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบชเปˆเบงเบ™เบ—เบต 2: เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Cloudflare

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ Cloudflare. เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเป‚เบ”เป€เบกเบ™เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเปเบฅเป‰เบง. เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹ blog.example.com.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 1: เบชเป‰เบฒเบ‡ DNS entry

เบ—เปเบฒเบญเบดเบ”, เป€เบฅเบทเบญเบเป‚เบ”เป€เบกเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฅเบฒเบเบเบฒเบ™เป€เบกเบ™เบน DNS. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ blog A-record เปเบฅเบฐเบŠเบตเป‰เบšเบญเบเบšเบฒเบ‡ IP เบ›เบญเบกเบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™ (เบ™เบตเป‰เปเบกเปˆเบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ เบ„เบณเปเบ™เบฐเบ™เบณ, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เบฒเบกเบเบงเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบ).

เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒ static เบขเบนเปˆเปƒเบ™ Cloudflare Workers Sites

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 2: Cloudflare Token

  1. เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ -> API tokens เปเบ–เบš-> เบชเป‰เบฒเบ‡เป‚เบ—เป€เบ„เบฑเบ™ -> เบชเป‰เบฒเบ‡ Custom Token

เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒ static เบขเบนเปˆเปƒเบ™ Cloudflare Workers Sites

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบˆเปเบฒเบเบฑเบ” token เปƒเบ™เบšเบฑเบ™เบŠเบตเปเบฅเบฐเป€เบ‚เบ”, เปเบ•เปˆเบญเบญเบเบˆเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ Edit เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบฎเบนเบš.

เบšเบฑเบ™เบ—เบถเบ token เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 3: เป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเปเบฅเบฐ zoneid

เป‚เบ”เป€เบกเบ™ โ†’ เบžเบฒเบšเบฅเบงเบก โ†’ [เปเบ–เบšเบ”เป‰เบฒเบ™เบ‚เบงเบฒ]

เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒ static เบขเบนเปˆเปƒเบ™ Cloudflare Workers Sitesเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบขเปˆเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™ :)

เบšเบฑเบ™เบ—เบถเบเบžเบงเบเบกเบฑเบ™เบขเบนเปˆเบ‚เป‰เบฒเบ‡ token, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 4: เป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™

เป‚เบ”เป€เบกเบ™ โ†’ เบžเบฐโ€‹เบ™เบฑเบโ€‹เบ‡เบฒเบ™ โ†’ เบ„เบธเป‰เบกเบ„เบญเบ‡เบœเบนเป‰เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบŠเบทเปˆโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป€เบญโ€‹เบเบฐโ€‹เบฅเบฑเบโ€‹เปเบฅเบฐโ€‹เบญเบฑเบ”โ€‹เบ•เบฒโ€‹เบžเบฒโ€‹เบชเบตโ€‹เบ„เบปเบ™โ€‹เบ‡เบฒเบ™ โ†’ เบšเปเปˆโ€‹เบˆเปเบฒโ€‹เบเบฑเบ” ($5 เบ•เปเปˆโ€‹เป€เบ”เบทเบญเบ™โ€‹เปƒเบ™โ€‹เบกเบทเป‰โ€‹เบ™เบตเป‰โ€‹)โ€‹. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเบฑเบšเป€เบเบฃเบ”เป€เบ›เบฑเบ™เป€เบงเบตเบŠเบฑเบ™เบŸเบฃเบตเปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡.

เบชเปˆเบงเบ™เบ—เบต 3: เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ” (เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ”เป‰เบงเบเบกเบท)

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบ„เบนเปˆเบกเบทเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบขเบนเปˆเบšเปˆเบญเบ™เบ™เบฑเป‰เบ™. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบ‡เปˆเบฒเบเบเบงเปˆเบฒ:

  1. เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡ wranglerโ€‹: npm i @cloudflare/wrangler -g

  2. เปƒเบซเป‰เป„เบ›เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ‚เบญเบ‡ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ: cd blog.example.com

  3. เป€เบ›เบตเบ”เบ•เบปเบง wrangler: wrangler init โ€” site hugo-worker

  4. เบชเป‰เบฒเบ‡ config เบชเปเบฒเบฅเบฑเบš wrangler (เปƒเบชเปˆ token เป€เบกเบทเปˆเบญเบ–เบทเบเบ–เบฒเบก): wrangler config

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเปเปˆ wrangler.toml (เบ—เบตเปˆเบ™เบตเป‰ เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป€เบ•เบฑเบกเบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰):

  1. เบฅเบฐเบšเบธเบงเปˆเบฒ เบšเบฑเบ™เบŠเบตเปเบฅเบฐ zoneid

  2. เบ›เปˆเบฝเบ™เปเบ›เบ‡ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เบเบฑเบšโ€‹เบšเบฒเบ‡โ€‹เบชเบดเปˆเบ‡โ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡ *blog.example.com/*

  3. เบฅเบฐเบšเบธเบงเปˆเบฒ เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ เบเบฒเบ™ เบ„เบปเบ™เบ‡เบฒเบ™

  4. เบ›เปˆเบฝเบ™ bucket เป€เบ›เบฑเบ™ ./public (เบซเบผเบทเบšเปˆเบญเบ™เบ—เบตเปˆเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ•เบฑเป‰เบ‡เบขเบนเปˆ)

  5. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เป‚เบ”เป€เบกเบ™เปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปเบเป‰เป„เบ‚เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบ™เบชเบฐเบ„เบดเบšเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ: workers-site/index.js (เป€เบšเบดเปˆเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ handleEvent)

เบ”เบตเบซเบผเบฒเบ, เบกเบฑเบ™เป€เบ–เบดเบ‡เป€เบงเบฅเบฒเปเบฅเป‰เบงเบ—เบตเปˆเบˆเบฐเบ™เบณเปƒเบŠเป‰เป€เบงเบฑเบšเป„เบŠเป‚เบ”เบเปƒเบŠเป‰เบ—เบตเบกเบ‡เบฒเบ™ wrangler publish.

เบชเปˆเบงเบ™เบ—เบต 4: เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”

เบ„เบนเปˆเบกเบทเบ™เบตเป‰เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš Gitlab, เปเบ•เปˆเบกเบฑเบ™เป€เบเบฑเบšเบเปเบฒเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 1: เบชเป‰เบฒเบ‡เปเบฅเบฐเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ

  1. เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ GitLab เปƒเบซเบกเปˆเปเบฅเบฐเบญเบฑเบšเป‚เบซเบฅเบ”เป€เบงเบฑเบšเป„เบŠเบ—เปŒ: เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต blog.example.com เบเบฑเบšเป€เบ™เบทเป‰เบญเปƒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบฎเบฒเบเป‚เบ„เบ‡เบเบฒเบ™

  2. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ” เบ•เบปเบงเปเบ› CFAPITOKEN เบ—เบตเปˆเบ™เบตเป‰: เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ โ†’ CI / CD โ†’ Variables

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 2: เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ .gitlab-ci.yml เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”

เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ .gitlab-ci.yml เปƒเบ™เบฎเบฒเบเบ—เบตเปˆเบกเบตเป€เบ™เบทเป‰เบญเปƒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

stages:
  - build
  - deploy

build:
  image: monachus/hugo
  stage: build
  variables:
    GIT_SUBMODULE_STRATEGY: recursive
  script:
    - cd blog.example.com/
    - hugo
  artifacts:
    paths:
      - blog.example.com/public
  only:
    - master # this job will affect only the 'master' branch
  tags:
    - gitlab-org-docker #


deploy:
  image: timbru31/ruby-node:2.3
  stage: deploy
  script:
    - wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
    - tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
    - cd blog.example.com/
    - ../dist/wrangler publish
  artifacts:
    paths:
      - blog.example.com/public
  only:
    - master # this job will affect only the 'master' branch
  tags:
    - gitlab-org-docker #

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบ›เบตเบ”โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹เบ”เป‰เบงเบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡ (CI/CD โ†’ เบ—เปเปˆ โ†’ เปเบฅเปˆเบ™เบ—เปเปˆ) เบซเบผเบทเป‚เบ”เบเบเบฒเบ™เปƒเบซเป‰เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบเบฑเบšเบชเบฒเบ‚เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เบงเป‰เบฒเบง!

เบชเบฐเบซเบฅเบธเบš

เบ”เบต, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐ understated เบกเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบŠเป‰เป€เบงเบฅเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเบดเบšเบ™เบฒเบ—เบต. เปเบ•เปˆเบ•เบญเบ™เบ™เบตเป‰เป€เบˆเบปเป‰เบฒเบกเบตเป€เบงเบฑเบšเป„เบŠเป„เบงเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เปเบฅเบฐเบšเบฒเบ‡เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปƒเปเปˆเป†เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบเบฑเบšเบ„เบปเบ™เบ‡เบฒเบ™.

 เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™ Cloudflare    Hugo    GitLab Ci

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™