ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΠΌΠ°, Π°Π· ΡΡΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π» Π½Π° Π΅ΠΊΠΈΠΏΠ° SysOps Π² Wrike. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΉΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π·Π° 10 ΠΌΠΈΠ½ΡΡΠΈ ΠΈ 5 Π΄ΠΎΠ»Π°ΡΠ° Π½Π° ΠΌΠ΅ΡΠ΅Ρ ΠΈ Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. Π‘ΡΠ°ΡΠΈΡΡΠ° Π½ΡΠΌΠ° ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠΎ ΠΎΠ±ΡΠΎ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅ Π² Π½Π°ΡΠΈΡ Π΅ΠΊΠΈΠΏ. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ ΠΎΡ Π·Π°ΠΏΠΎΠ·Π½Π°Π½ΡΡΠ²ΠΎΡΠΎ Ρ Π΅Π΄Π½Π° Π½ΠΎΠ²Π° Π·Π° ΠΌΠ΅Π½ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠΎΡΡΠ°ΡΠ°Ρ ΡΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ° ΡΡΡΠΏΠΊΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, Π·Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° Ρ ΠΎΡΠ° Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ. ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ ΡΠ΅ ΡΠ΅ Π½Π°ΡΠ»Π°Π΄ΠΈΡΠ΅. ΠΡΠΈΠ²Π°ΠΌ!
Π ΡΠ°ΠΊΠ°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π²Π΅ΡΠ΅ ΡΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΡΡ ΠΈ Π΅Π²ΡΠΈΠ½ Π½Π°ΡΠΈΠ½ Π΄Π° Ρ
ΠΎΡΡΠ²Π°ΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΉΡ. ΠΠΎΠΆΠ΅ Π±ΠΈ Π΄ΠΎΡΠΈ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠΎΠ²Π°
ΠΠΎ ΠΈΠ·Π²Π΅Π΄Π½ΡΠΆ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠΊΡΡΠ°Π΅ΡΠ΅ ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠΊΠΎΡΠ½Π΅ΡΠ΅ Π΄ΠΎ ΡΠΌΠ΅Π»ΠΈΡ Π½ΠΎΠ² ΡΠ²ΡΡ Π½Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅? ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π±ΠΈΡ
ΡΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° ΡΡΠΊΠΎΡΠΈΡΠ΅ ΡΠ°ΠΉΡΠ° ΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ? Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Gitlab CI/CD Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ΡΠΎ? ΠΠ΅ΠΊΠ° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΠ°ΠΉΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Cloudflare, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅
ΠΠ°ΠΊΠ²ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅:
-
Gitlab (Π²Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΈΠ»ΠΈ
ΠΎΠ±Π»Π°ΡΠ½ΠΎ ) -
Π‘ΠΌΠ΅ΡΠΊΠ° Π½Π° Cloudflare -
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½
nodejs/npm
Π§Π°ΡΡ 1: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Hugo
ΠΠΊΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Hugo ΠΈΠ»ΠΈ Π°ΠΊΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΠ΅ Π΄ΡΡΠ³ ΡΡΠ°ΡΠΈΡΠ΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΡΠ°ΠΉΡΠΎΠ²Π΅ (ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°ΠΊΡΠ²), ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΏΡΡΠ½Π΅ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ°ΡΡ.
-
ΠΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ Hugo ΠΎΡ
https://github.com/gohugoio/hugo/releases -
ΠΠΎΡΡΠ°Π²ΡΠΌΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ» Π½Π° Hugo ΡΠΏΠΎΡΠ΅Π΄ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈΡΠ΅ Π²
PATH Π½Π°ΡΠΈΠ½ΠΈ -
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² ΡΠ°ΠΉΡ:
hugo new site blog.example.com
-
ΠΡΠΎΠΌΠ΅Π½Π΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΊΡΠΌ Π½ΠΎΠ²ΠΎΡΡΠ·Π΄Π°Π΄Π΅Π½Π°ΡΠ°:
cd blog.example.com
-
ΠΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ΅ΠΌΠ° Π·Π° Π΄ΠΈΠ·Π°ΠΉΠ½ (
https://github.com/budparr/gohugo-theme-ananke/releases ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅) -
ΠΠ΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΡΡΠ²Π°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ:
hugo new posts/my-amazing-post.md
-
ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»: content/posts/my-amazing-post.md.
ΠΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ Π³ΠΎΡΠΎΠ²ΠΎ, ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅ΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΡΠ°Π»ΡΠΈΠ² -
ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
hugo -D
Π‘Π΅Π³Π° Π½Π°ΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅Π½ ΡΠ°ΠΉΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ./ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ ΠΈ Π³ΠΎΡΠΎΠ² Π·Π° ΠΏΡΡΠ²ΠΎΡΠΎ Π²ΠΈ ΡΡΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
Π§Π°ΡΡ 2: ΠΠ°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° Cloudflare
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Cloudflare. ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π·Π° ΡΠ°ΠΉΡΠ°. ΠΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ Π·Π° ΠΏΡΠΈΠΌΠ΅Ρ blog.example.com.
Π‘ΡΡΠΏΠΊΠ° 1: Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ DNS Π·Π°ΠΏΠΈΡ
ΠΡΡΠ²ΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π½Π°ΡΠΈΡ Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΡ ΠΌΠ΅Π½ΡΡΠΎ DNS. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ A-Π·Π°ΠΏΠΈΡ Π½Π° Π±Π»ΠΎΠ³ ΠΈ ΠΏΠΎΡΠΎΡΠ²Π°ΠΌΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠΈΠΊΡΠΈΠ²Π΅Π½ IP Π·Π° Π½Π΅Π³ΠΎ (ΡΠΎΠ²Π° Π΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡΡ
Π‘ΡΡΠΏΠΊΠ° 2: Cloudflare Token
-
ΠΠΎΡΡ ΠΏΡΠΎΡΠΈΠ» -> API ΡΠΎΠΊΠ΅Π½ΠΈ ΡΠ°Π·Π΄Π΅Π»-> Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠΊΠ΅Π½ -> Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΎΠΊΠ΅Π½
Π’ΡΠΊ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΡΠΎΠΊΠ΅Π½Π° Π΄ΠΎ Π°ΠΊΠ°ΡΠ½ΡΠΈ ΠΈ Π·ΠΎΠ½ΠΈ, Π½ΠΎ ΠΎΡΡΠ°Π²Π΅ΡΠ΅ ΠΎΠΏΡΠΈΡΡΠ° Π Π΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ°, ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ Π½Π° ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ°.
ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ ΡΠΎΠΊΠ΅Π½Π° Π·Π° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ, ΡΠ΅ Π½ΠΈ ΡΡΡΠ±Π²Π° Π² ΡΡΠ΅ΡΠ°ΡΠ° ΡΠ°ΡΡ.
Π‘ΡΡΠΏΠΊΠ° 3: ΠΠ·Π΅ΠΌΠ΅ΡΠ΅ accountid ΠΈ zoneid
Π΄ΠΎΠΌΠ΅ΠΉΠ½ β Overview β [Π΄ΡΡΠ½Π° ΡΡΡΠ°Π½ΠΈΡΠ½Π° Π»Π΅Π½ΡΠ°]
Π’Π΅Π·ΠΈ ΡΠ° ΠΌΠΎΠΈ, Π½Π΅ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅, ΠΌΠΎΠ»Ρ :)
ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ Π³ΠΈ Π΄ΠΎ ΠΆΠ΅ΡΠΎΠ½Π°, ΡΠ΅ Π½ΠΈ ΡΡΡΠ±Π²Π°Ρ ΠΈ Π² ΡΡΠ΅ΡΠ°ΡΠ° ΡΠ°ΡΡ.
Π‘ΡΡΠΏΠΊΠ° 4: ΠΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅
Π΄ΠΎΠΌΠ΅ΠΉΠ½ β Π Π°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅ β Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅
ΠΠΈΠ΅ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎ ΠΈΠΌΠ΅ ΠΈ ΡΠ°ΡΠΈΡΠ° Workers β Unlimited ($5 Π½Π° ΠΌΠ΅ΡΠ΅Ρ Π΄Π½Π΅Ρ). ΠΠΊΠΎ ΠΆΠ΅Π»Π°Π΅ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ Π΄Π° Π½Π°Π΄ΡΡΡΠΎΠΈΡΠ΅ Π΄ΠΎ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ.
Π§Π°ΡΡ 3: ΠΡΡΠ²ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ (ΡΡΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅)
ΠΠ°ΠΏΡΠ°Π²ΠΈΡ ΠΏΡΡΠ²ΠΎΡΠΎ ΡΡΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ°ΠΌ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ:
-
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ wrangler:
npm i @cloudflare/wrangler -g
-
ΠΠ° ΠΎΡΠΈΠ΄Π΅ΠΌ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
cd blog.example.com
-
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Wrangler:
wrangler init β site hugo-worker
-
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π° wrangler (Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ ΡΠΎΠΊΠ΅Π½Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠΏΠΈΡΠ°Π½ΠΈ):
wrangler config
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π½ΠΎΠ²ΠΎΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ» wrangler.toml (
-
ΠΠΎΡΠΎΡΠ²Π°ΠΌΠ΅ accountid ΠΈ zoneid
-
ΠΠΈΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΠΌΠ°ΡΡΡΡΡ Π½Π° Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ *blog.example.com/*
-
ΠΠΎΡΠΎΡΠ²Π°ΠΌΠ΅ ΡΠ°Π»ΡΠΈΠ² Π·Π° worksdev
-
ΠΡΠΎΠΌΠ΅Π½Π΅ΡΠ΅ ΠΊΠΎΡΠ°ΡΠ° Π½Π° ./public (ΠΈΠ»ΠΈ ΠΊΡΠ΄Π΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π²Π°ΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅Π½ ΡΠ°ΠΉΡ)
-
ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π² ΠΏΡΡΡ, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ ΠΏΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΡΠΊΡΠΈΠΏΡ: ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ-ΡΠ°ΠΉΡ/index.js (Π²ΠΈΠΆ ΡΡΠ½ΠΊΡΠΈΡ handleEvent)
Π‘ΡΡΠ°Ρ
ΠΎΡΠ½ΠΎ, Π²ΡΠ΅ΠΌΠ΅ Π΅ Π΄Π° Π²Π½Π΅Π΄ΡΠΈΠΌ ΡΠ°ΠΉΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΅ΠΊΠΈΠΏΠ° wrangler publish
.
Π§Π°ΡΡ 4: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ
Π’ΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π·Π° Gitlab, Π½ΠΎ ΡΠ»Π°Π²Ρ ΡΡΡΠ½ΠΎΡΡΡΠ° ΠΈ Π»Π΅ΠΊΠΎΡΠ°ΡΠ° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ.
Π‘ΡΡΠΏΠΊΠ° 1: Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ
-
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° GitLab ΠΈ ΠΊΠ°ΡΠ΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° site: blog.example.com Ρ ΡΡΠ»ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
-
ΠΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° 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 β Π’ΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈ β ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄) ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ Ρ Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΠΎΠ½. ΠΡΠΎ!
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π, ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠΌ Π³ΠΎ ΠΏΠΎΠ΄ΡΠ΅Π½ΠΈΠ» Π»Π΅ΠΊΠΎ ΠΈ ΡΠ΅Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ ΠΎΡΠ½Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π΅ΡΠ΅Ρ ΠΌΠΈΠ½ΡΡΠΈ. ΠΠΎ ΡΠ΅Π³Π° ΠΈΠΌΠ°ΡΠ΅ Π±ΡΡΠ· ΡΠ°ΠΉΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ Π½ΡΠΊΠΎΠΈ ΡΠ²Π΅ΠΆΠΈ ΠΈΠ΄Π΅ΠΈ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΄ΡΡΠ³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ Ρ Workers.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com