ΠΡΠΈΠ²Π΅Ρ! ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠΈΠΌΠ°, Ρ ΡΠ΅Ρ Π»ΠΈΠ΄ 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.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΠΌΠ΅Π½ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ draft Π½Π° false -
ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ:
hugo -D
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ./public ΠΈ Π³ΠΎΡΠΎΠ² ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΡΡΠ½ΠΎΠΌΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.
Π§Π°ΡΡΡ 2: ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Cloudflare
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Cloudflare. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π΄ΠΎΠΌΠ΅Π½ Π΄Π»Ρ ΡΠ°ΠΉΡΠ° Ρ Π½Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ blog.example.com.
Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ DNS
Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π°Ρ Π΄ΠΎΠΌΠ΅Π½, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ DNS. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ A-Π·Π°ΠΏΠΈΡΡ blog ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π΄Π»Ρ Π½Π΅Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ IP (ΡΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ
Π¨Π°Π³ 2: Π’ΠΎΠΊΠ΅Π½ Cloudflare
-
My Profile -> API tokens tab-> Create Token -> Create Custom Token
ΠΠ΄Π΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½ ΡΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ ΠΈ Π·ΠΎΠ½Π°ΠΌΠΈ, Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Edit Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠΎΠΊΠ΅Π½ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅, ΠΎΠ½ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΠΌ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ.
Π¨Π°Π³ 3: ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ accountid ΠΈ zoneid
Domain β Overview β [ΠΏΡΠ°Π²Π°Ρ Π±ΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ]
ΠΡΠΎ ΠΌΠΎΠΈ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΡ , ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° π
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΡ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ, ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π½Π°ΠΌ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ.
Π¨Π°Π³ 4: ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ Workers
Domain β Workers β Manage Workers
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΈ ΡΠ°ΡΠΈΡ 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
-
ΠΠ΅Π½ΡΠ΅ΠΌ route Π½Π° ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΡΠΎΠ΄Π΅ *blog.example.com/*
-
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ false Π΄Π»Ρ workersdev
-
ΠΠ΅Π½ΡΠ΅ΠΌ bucket Π½Π° ./public (ΠΈΠ»ΠΈ Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΡ)
-
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π² ΠΏΡΡΠΈ, ΡΠΎ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠ΅: workers-site/index.js (ΡΠΌ. ΡΡΠ½ΠΊΡΠΈΡ handleEvent)
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wrangler publish
.
Π§Π°ΡΡΡ 4: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΏΠ»ΠΎΡ
ΠΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π΄Π»Ρ Gitlab, Π½ΠΎ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π² ΡΠ΅Π»ΠΎΠΌ.
Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ
-
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ GitLab ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ°ΠΉΡ: Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ blog.example.com ΡΠΎ Π²ΡΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
-
ΠΠ°Π΄Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ CFAPITOKEN Π·Π΄Π΅ΡΡ: Settings β 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 β Pipelines β Run Pipeline) ΠΈΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡ commit Π² Π²Π΅ΡΠΊΡ master. ΠΡΠ°Π»Ρ!
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π§ΡΠΎ ΠΆ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΡΠ»Π΅Π³ΠΊΠ° ΠΏΡΠΈΡΠΌΠ΅Π½ΡΡΠΈΠ», ΠΈ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΡΠ» ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΡΡΠΈ ΠΌΠΈΠ½ΡΡ. ΠΠ°ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±ΡΡΡΡΡΠΉ ΡΠ°ΠΉΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅ΠΆΠΈΡ ΠΈΠ΄Π΅ΠΉ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Workers.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com