рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдХрд╕рд░реА рдмрдирд╛рдЙрдиреЗ

рдирдорд╕реНрддреЗ! рдореЗрд░реЛ рдирд╛рдо рджрд┐рдорд╛ рд╣реЛ, рдо Wrike рдорд╛ SysOps рдЯреЛрд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдиреЗрддреГрддреНрд╡ рд╣реБрдБред рдпрд╕ рд▓реЗрдЦрдорд╛ рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ 10 рдорд┐рдиреЗрдЯ рд░ 5 рдбрд▓рд░ рдПрдХ рдорд╣рд┐рдирд╛рдорд╛ рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕рдореНрднрд╡ рднрдПрд╕рдореНрдо рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдирдЬрд┐рдХ рдмрдирд╛рдЙрдиреЗ рд░ рдпрд╕рдХреЛ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдмрддрд╛рдЙрдиреЗрдЫреБред рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдЯреЛрд▓реА рднрд┐рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд╕рдБрдЧ рд▓реЗрдЦрдХреЛ рд▓рдЧрднрдЧ рдХреБрдиреИ рд╕рд░реЛрдХрд╛рд░ рдЫреИрдиред рдпреЛ рдмрд░реБ рдореЗрд░реЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рд░ рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЫ рдХрд┐ рдПрдХ рдкреНрд░рд╡рд┐рдзрд┐ рдЬрд╛рдиреНрди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкреНрд░рднрд╛рд╡ рд╣реЛред рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдлрд░рдХ рдЕрдиреБрднрд╡ рднрдПрдХрд╛ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗ рдЧрд░реА рдореИрд▓реЗ рд╕рдХреЗрд╕рдореНрдо рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдЪрд░рдгрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВред рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдордЬрд╛ рд▓рд┐рдиреБрд╣реБрдиреЗрдЫред рдЬрд╛рдЙ!

рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдХрд╕рд░реА рдмрдирд╛рдЙрдиреЗ

рддреНрдпрд╕реЛрднрдП, рд╕рд╛рдпрдж рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯ рдЧрд░реНрдиреЗ рд╕рд░рд▓ рд░ рд╕рд╕реНрддреЛ рддрд░рд┐рдХрд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрднрдПрдХреЛ рдЫред рд╕рд╛рдпрдж рдирд┐:рд╢реБрд▓реНрдХ рдкрдирд┐, рдпрд╕рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ рдорд╣рд╛рди рд▓реЗрдЦ.

рддрд░ рдЕрдЪрд╛рдирдХ рддрдкрд╛рдИрдВ рдЕрдЭреИ рдмреЛрд░ рд╣реБрдиреБрд╣реБрдиреНрдЫ рд░ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреАрдХреЛ рдмрд╣рд╛рджреБрд░ рдирдпрд╛рдБ рд╕рдВрд╕рд╛рд░ рдЫреБрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ? рдорд╛рдиреМрдВ рддрдкрд╛рдИрдВ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рд░ рдЖрдлреНрдиреЛ рд╕рд╛рдЗрдЯрд▓рд╛рдИ рд╕рдХреЗрд╕рдореНрдо рдЧрддрд┐ рджрд┐рди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ? рдпрд╕ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ рд╣реНрдпреВрдЧреЛ, рддрд░ рдпреЛ рдРрдЪреНрдЫрд┐рдХ рдЫред

рд╣рд╛рдореА рд╕реНрд╡рдЪрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐ Gitlab CI/CD рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рддрд░ рдПрдХреНрд╕реЗрд▓реЗрд░реЗрд╢рдирдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реЛ? рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Cloudflare рдорд╛ рд╕реАрдзрд╛ рд╕рд╛рдЗрдЯ рддреИрдирд╛рдд рдЧрд░реМрдВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВ.

рдХреЗ рд╕реБрд░реБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

рднрд╛рдЧ 1: Hugo рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ Hugo рд╕реНрдерд╛рдкрд┐рдд рдЫ, рд╡рд╛ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдлрд░рдХ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдЬреЗрдиреЗрд░реЗрдЯрд░ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ (рд╡рд╛ рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН), рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рдпреЛ рднрд╛рдЧ рдЫреЛрдбреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

  1. Hugo рдмрд╛рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН https://github.com/gohugoio/hugo/releases

  2. рд╣рд╛рдореАрд▓реЗ рд╣реНрдпреБрдЧреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рддреА рдордзреНрдпреЗ рдПрдХ рдЕрдиреБрд╕рд╛рд░ рд░рд╛рдЦреНрдЫреМрдВ 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

рдЕрдм рд╣рд╛рдореНрд░реЛ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рднрд┐рддреНрд░ рд╕реНрдерд┐рдд рдЫ ./рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░ рддрдкрд╛рдЗрдБрдХреЛ рдкрд╣рд┐рд▓реЛ рдореНрдпрд╛рдиреБрдЕрд▓ рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рдЫред

рднрд╛рдЧ реи: рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ

рдЕрдм Cloudflare рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕реЗрдЯрдЕрдк рд╣реЗрд░реМрдВред рдорд╛рдиреМрдВ рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд╛рдЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдбреЛрдореЗрди рдЫред рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдФрдВ blog.example.comред

рдЪрд░рдг 1: DNS рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореНрд░реЛ рдбреЛрдореЗрди рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдореЗрдиреБ рд╡рд╕реНрддреБ DNSред рд╣рд╛рдореА рдПрдЙрдЯрд╛ рдмреНрд▓рдЧ рдП-рд░реЗрдХрд░реНрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдХреЗрд╣реА рдХрд╛рд▓реНрдкрдирд┐рдХ рдЖрдИрдкреА рд╕рдВрдХреЗрдд рдЧрд░реНрдЫреМрдВ (рдпреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реЛ рд╕рд┐рдлрд╛рд░рд┐рд╕, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЕрд▓рд┐ рд╕реБрдиреНрджрд░ рдмрдирд╛рдЙрди рд╕рдХреНрдереЗ)ред

рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдХрд╕рд░реА рдмрдирд╛рдЙрдиреЗ

рдЪрд░рдг 2: Cloudflare рдЯреЛрдХрди

  1. рдореЗрд░реЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ -> API рдЯреЛрдХрдирд╣рд░реВ рдЯреНрдпрд╛рдм-> рдЯреЛрдХрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН -> рдЕрдиреБрдХреВрд▓рди рдЯреЛрдХрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдХрд╕рд░реА рдмрдирд╛рдЙрдиреЗ

рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рдЯреЛрдХрдирд▓рд╛рдИ рдЦрд╛рддрд╛ рд░ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддрд░ рдЪрд┐рддреНрд░рдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдЕрдиреБрдорддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдореНрдкрд╛рджрди рд╡рд┐рдХрд▓реНрдк рдЫреЛрдбреНрдиреБрд╣реЛрд╕реНред

рднрд╡рд┐рд╖реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдЯреЛрдХрди рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╣рд╛рдореАрд▓рд╛рдИ рддреЗрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рдЪрд╛рд╣рд┐рдиреНрдЫред

рдЪрд░рдг 3: Accountid рд░ zoneid рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдбреЛрдореЗрди тЖТ рдкрд░рд┐рдЪрдп тЖТ [рджрд╛рдпрд╛рдБ рд╕рд╛рдЗрдбрдмрд╛рд░]

рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдХрд╕рд░реА рдмрдирд╛рдЙрдиреЗрдпреА рдореЗрд░рд╛ рд╣реБрдиреН, рдХреГрдкрдпрд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН :)

рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЯреЛрдХрдирдХреЛ рдЫреЗрдЙрдорд╛ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╣рд╛рдореАрд▓рд╛рдИ рддреЗрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рдкрдирд┐ рдЪрд╛рд╣рд┐рдиреНрдЫред

рдЪрд░рдг 4: рдХрд╛рдорджрд╛рд░рд╣рд░реВрд▓рд╛рдИ рд╕рдХреНрд░рд┐рдп рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдбреЛрдореЗрди тЖТ рдордЬрджреБрд░ тЖТ рд╢реНрд░рдорд┐рдХрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрдиреБрд╣реЛрд╕реН

рд╣рд╛рдореА рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рд░ рдЯреНрдпрд╛рд░рд┐рдл рдХрд╛рдорджрд╛рд░рд╣рд░реВ тЖТ рдЕрд╕реАрдорд┐рдд ($ 5 рдкреНрд░рддрд┐ рдорд╣рд┐рдирд╛ рдЖрдЬ) рдЫрдиреЛрдЯ рдЧрд░реНрдЫреМрдВред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдкрдЫрд┐ рдирд┐: рд╢реБрд▓реНрдХ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЕрдкрдЧреНрд░реЗрдб рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рднрд╛рдЧ рей: рдкрд╣рд┐рд▓реЛ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ (рдореНрдпрд╛рдиреБрдЕрд▓ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ)

рддреНрдпрд╣рд╛рдБ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ рднрдиреА рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдореИрд▓реЗ рдкрд╣рд┐рд▓реЛ рдореНрдпрд╛рдиреБрдЕрд▓ рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рдЧрд░реЗрдВред рдпрджреНрдпрдкрд┐ рдпреЛ рд╕рдмреИ рд╕рд░рд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

  1. wrangler рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН: npm i @cloudflare/wrangler -g

  2. рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЬрд╛рдФрдВ: cd blog.example.com

  3. рд▓рдиреНрдЪ рд░рдЩреНрдЧрд▓рд░: wrangler init тАФ site hugo-worker

  4. рд░рдЩреНрдЧрд▓рд░рдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╕реЛрдзреНрджрд╛ рдЯреЛрдХрди рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН): wrangler config

рдЕрдм рдирдпрд╛рдБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ wrangler.toml (рдпрд╣рд╛рдБ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реВрдЪреА):

  1. рд╕рдВрдХреЗрдд рд▓реЗрдЦрд╛рдХрд╛рд░ рд░ рдХреНрд╖реЗрддреНрд░реАрдп

  2. рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рд░реНрдЧ рдХреЗрд╣рд┐ рдЬрд╕реНрддреИ *blog.example.com/*

  3. рд╕рдВрдХреЗрдд рдЭреВрдЯрд╛ рд▓рд╛рдЧрд┐ рдХрд░реНрдордЪрд╛рд░реА рджреЗрд╡

  4. рдмрд╛рд▓реНрдЯреАрд▓рд╛рдИ ./public рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╡рд╛ рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдЕрд╡рд╕реНрдерд┐рдд рдЫ)

  5. рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкрдердорд╛ рдПрдХ рднрдиреНрджрд╛ рдмрдвреА рдбреЛрдореЗрди рдЫ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рд▓рд┐рдкрд┐рдорд╛ рдкрде рд╕рдЪреНрдпрд╛рдЙрдиреБрдкрд░реНрдЫ: Workers-site/index.js (рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рд╣реНрдпрд╛рдиреНрдбрд▓ рдШрдЯрдирд╛)

рд░рд╛рдореНрд░реЛ, рдпреЛ рдЯреЛрд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд╛рдЗрдЯ рддреИрдирд╛рддреА рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛ wrangler publish.

рднрд╛рдЧ рек: рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рди

рдпреЛ рдЧрд╛рдЗрдб Gitlab рдХреЛ рд▓рд╛рдЧрд┐ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ, рддрд░ рдпрд╕рд▓реЗ рд╕рд╛рд░ рд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддреИрдирд╛рддреА рдХреЛ рд╕рд╣рдЬрддрд╛ рдХреИрдж рдЧрд░реНрджрдЫред

рдЪрд░рдг 1: рд╣рд╛рдореНрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН

  1. рдирдпрд╛рдБ GitLab рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╕рд╛рдЗрдЯ рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН: рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА blog.example.com рд╕рдмреИ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╣реБрдиреБрдкрд░реНрдЫ

  2. рд╣рд╛рдореАрд▓реЗ рд╕реЗрдЯ рдЧрд░реНрдпреМрдВ рдЪрд░ CFAPITOKEN рдпрд╣рд╛рдБ: рд╕реЗрдЯрд┐рдЩ тЖТ CI / CD тЖТ рдЪрд░рд╣рд░реВ

рдЪрд░рдг 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 тЖТ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ тЖТ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН) рд╡рд╛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдорд╛ рдкреНрд░рддрд┐рдмрджреНрдз рднрдПрд░ред рднреЛрдЗрд▓рд╛!

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдард┐рдХ рдЫ, рдореИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдереЛрд░реИ рдмреБрдЭреЗрдХреЛ рд╣реБрди рд╕рдХреНрдЫ, рд░ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рджрд╕ рдорд┐рдиреЗрдЯ рдорд╛рддреНрд░ рд▓рд┐рдпреЛред рддрд░ рдЕрдм рддрдкрд╛рдИрдВрд╕рдБрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдХреЛ рд╕рд╛рде рджреНрд░реБрдд рд╕рд╛рдЗрдЯ рдЫ рд░ рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдорджрд╛рд░рд╣рд░реВрд╕рдБрдЧ рдХреЗ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдХреЗрд╣реА рдирдпрд╛рдБ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдЫрдиреНред

 рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рд╣рд░реВ    рд╣реНрдпреВрдЧреЛ    GitLab Ci

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди