ΠΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π΄Π΅ΡΠ΅Π½ΠΈΡΠ°, ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ Π½Π°ΠΏΡΠ΅Π΄ΠΎΠΊ Π²ΠΎ ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° (Continuous Integration, CI) ΠΈ ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½ΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ (Continuous Delivery, CD). Π Π°Π·Π²ΠΎΡΠΎΡ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π·Π²ΠΎΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠΎΡΡΠ²Π΅Ρ (ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ°Π·Π²ΠΎΡ, DevOps) Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π±ΡΠ·ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ±Π°ΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π·Π° CI / CD Π°Π»Π°ΡΠΊΠΈ. ΠΠΎΡΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π°Ρ, ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°Π°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π²ΠΎ ΡΠ΅ΠΊΠΎΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΈΠ·Π»Π΅Π³ΡΠ²Π°Π°Ρ Π½ΠΈΠ²Π½ΠΈΡΠ΅ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ, Π²ΠΎ ΡΠ²Π΅ΡΠΎΡ Π½Π° ΡΠΎΡΡΠ²Π΅ΡΠΎΡ Π·Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΊΠ²Π°Π»ΠΈΡΠ΅Ρ (Quality Assurance, QA), ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π°Π°Ρ ΠΌΠ½ΠΎΠ³Ρ Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ. Π‘ΠΎ ΡΠΎΠ»ΠΊΠ°Π²ΠΎ Π±ΠΎΠ³Π°ΡΡΡΠ²ΠΎ Π½Π° ΠΈΠ·Π±ΠΎΡ, ΠΈΠ·Π±ΠΎΡΠΎΡ Π½Π° Π²ΠΈΡΡΠΈΠ½ΡΠΊΠ°ΡΠ° Π°Π»Π°ΡΠΊΠ° Π½Π΅ Π΅ Π»Π΅ΡΠ½Π° Π·Π°Π΄Π°ΡΠ°.
ΠΠΎΠΌΠ΅ΡΡ ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ CI/CD Π°Π»Π°ΡΠΊΠΈ, ΠΈΠΌΠ° Π΄Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° ΠΊΠΎΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΠΎ Π²ΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ½Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡ ΠΊΠΎΡ Π±Π°ΡΠ° Π½Π΅ΡΡΠΎ ΠΎΠ΄ ΠΎΠ²Π°Π° ΠΎΠ±Π»Π°ΡΡ. Π‘ΡΠ°Π½ΡΠ²Π° Π·Π±ΠΎΡ Π·Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ Π°Π»Π°ΡΠΊΠ°ΡΠ° GitLab CI / CD, ΠΊΠΎΡΠ° Π΅ Π΄Π΅Π» ΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° GitLab. ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄
ΠΠ΅ΠΌΠ΅ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° G2, ΠΊΠΎΡΠ° Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ° ΠΏΡΠ΅Π³Π»Π΅Π΄ΠΈ Π½Π° ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΠ°Ρ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΈΠΌ Π³ΠΈ Π΄Π°Π²Π°Π°Ρ. ΠΠ²Π΅ ΡΠ° ΠΏΡΠΎΡΠ΅ΡΠ½Π°ΡΠ° ΠΎΡΠ΅Π½ΠΊΠ°
ΠΠΊΠΎ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΎΡΡΠ° Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π²ΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ Π΄ΡΡΠ³ΠΈ ΡΠ»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π·Π°Π±Π΅Π»Π΅ΠΆΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ°, ΠΎΡΠΊΠ°ΠΊΠΎ ΠΎΠ±ΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΡΡΠ°ΡΠΈΡΠ° Π²ΠΎ ΠΊΠΎΡΠ° Π³ΠΈ ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°Π²ΠΌΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈΡΠ΅ Π’ΡΠ΅Π²ΠΈΡ Π¦Π ΠΈ ΠΠ΅Π½ΠΊΠΈΠ½Ρ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π²ΠΌΠ΅ Π°Π½ΠΊΠ΅ΡΠ°. ΠΠΎ Π½Π΅Π³ΠΎ ΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π° 85 ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ. ΠΠ΄ ΠΈΡΠΏΠΈΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π±Π΅ΡΠ΅ ΠΏΠΎΠ±Π°ΡΠ°Π½ΠΎ Π΄Π° ΡΠ° ΠΈΠ·Π±Π΅ΡΠ°Ρ Π°Π»Π°ΡΠΊΠ°ΡΠ° CI/CD ΡΡΠΎ Π½Π°ΡΠΌΠ½ΠΎΠ³Ρ ΠΈΠΌ ΡΠ΅ Π΄ΠΎΠΏΠ°ΡΠ°. 79% Π³ΠΎ ΠΈΠ·Π±ΡΠ°Π»Π΅ ΠΠ΅Π½ΠΊΠΈΠ½Ρ, 5% Π³ΠΎ ΠΈΠ·Π±ΡΠ°Π»Π΅ Travis CI, Π° 16% ΠΏΠΎΡΠΎΡΠΈΠ»Π΅ Π΄Π΅ΠΊΠ° ΠΏΡΠ΅ΡΠΏΠΎΡΠΈΡΠ°Π°Ρ Π΄ΡΡΠ³ΠΈ Π°Π»Π°ΡΠΊΠΈ.
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΠ΄ Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°
ΠΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° CI/CD, Π½Π°ΡΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ GitLab CI/CD.
ΠΠΊΠΎ ΡΡΠ΅ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ Π²ΠΎ Π²ΡΡΠΊΠ° ΡΠΎ DevOps, ΡΠΎΠ³Π°Ρ ΡΡΠ΅Π±Π° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ, Π·Π΅ΠΌΠ°ΡΡΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ, Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ Π±ΡΡΠ΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ°. ΠΠ° Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈΠΎΡ ΠΈΠ·Π±ΠΎΡ, ΡΠ΅ Π³ΠΈ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Jenkins ΠΈ GitLab CI/CD. Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈΠΎΡ ΠΈΠ·Π±ΠΎΡ.
ΠΠΎΠ²Π΅Π΄ Π²ΠΎ ΠΠ΅Π½ΠΊΠΈΠ½Ρ
ΠΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° Jenkins ΡΠΎΠ·Π΄Π°Π΄ΠΎΠ° ΡΡΡΠ΅ Π΅Π΄Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, Jenkins X, ΠΊΠΎΡ Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΎΠΊΠΎΠ»ΠΈΠ½Π° Π½Π° Kubernetes. Jenkins X Π³ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Helm, Jenkins CI/CD ΡΠ΅ΡΠ²Π΅ΡΠΎΡ, Kubernetes ΠΈ Π΄ΡΡΠ³ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΈ CI/CD ΠΊΠΎΠΈ Π³ΠΈ ΡΠ»Π΅Π΄Π°Ρ Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π½Π° DevOps. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ²Π΄Π΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ GitOps.
ΠΠΎ ΡΠΈΠ·Π½ΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΈ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΈ ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π΄ΠΎΠ±ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ, ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ²ΠΈ ΠΈ Π»Π΅ΡΠ½ΠΈ Π·Π° ΡΠΈΡΠ°ΡΠ΅. Π’ΠΈΠΌΠΎΡ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΡΠΎΠ·Π΄Π°Π΄Π΅ ΠΎΠΊΠΎΠ»Ρ 1000 Π΄ΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΠΎΠ½ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΡΠΎ ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΠ°Ρ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π‘ΠΊΡΠΈΠΏΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ°, ΠΊΠΎΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π΅ΡΠ΅ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π³Π°ΡΠΎΠ²ΠΎΠ΄ΠΎΡ ΠΠ΅Π½ΠΊΠΈΠ½Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°Π±ΡΡΠ΄ΡΠ²Π°ΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ΅ΠΊΠΎΡ, Π΄Π°Π»ΠΈ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΡΠ°Π·ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²ΡΡΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π½Π΅. Π‘Π΅ΡΠΎ ΠΎΠ²Π°, ΡΠ΅ΠΏΠ°ΠΊ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π³Π»Π΅Π΄Π°ΡΠ΅ Π±Π΅Π· ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π³ΡΠ°ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ, ΡΡΠΊΡ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΡ.
ΠΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ
ΠΠ΅ΡΡ Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠ·Π½Π°ΡΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΡΠ΅ Π»Π΅ΡΠ½ΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅, Π²ΠΈΡΠΎΠΊΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ΄Π»ΠΈΡΠ½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°. ΠΠΊΠΎ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π° DevOps, ΡΠΎΠ³Π°Ρ ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΡΠ΅ ΡΠΌΠ΅ΡΠ° Π·Π° ΠΌΠ½ΠΎΠ³Ρ ΡΠΈΠ³ΡΡΠ½Π° Π°Π»Π°ΡΠΊΠ°, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ°, ΠΊΠ°ΠΊΠΎ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ΠΌΠ° ΡΠΌΠΈΡΠ»Π° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ ΡΠ΅Π»ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ. ΠΠ²Π° Π½Π΅ Π΅ ΡΠ»ΡΡΠ°Ρ ΡΠΎ Π΄ΡΡΠ³ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° CI/CD. ΠΡΠ΄Π΅ Π΄Π° Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½Π°ΡΠ²Π°ΠΆΠ½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ.
β1. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΌΡΠ»ΡΠΈ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°
ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° macOS, Windows ΠΈ Linux ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. ΠΠΎΠΆΠ΅ Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΈ Π²ΠΎ Docker ΠΎΠΊΠΎΠ»ΠΈΠ½Π°, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ½ΠΈΡΠΎΡΠΌΠ½ΠΎ ΠΈ Π±ΡΠ·ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅ΡΠ²Π»Π΅Ρ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½Π° Java ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Apache Tomcat ΠΈ GlassFish. ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΊΠ²Π°Π»ΠΈΡΠ°ΡΠΈΠ²Π½ΠΎ
β2. Π Π°Π·Π²ΠΈΠ΅Π½ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ
Π‘Π΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΡ Π½Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ·ΡΠ΅Π» ΠΎΠ΄ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° CI/CD. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΠ° Π½Π°Π΄ 1500 ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ Π·Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ. ΠΠ²ΠΈΠ΅ Π΄ΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅ Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΠΎΠ½ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΠ°Ρ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΡΠΎ Π½ΠΈΠ²Π½Π° ΠΏΠΎΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΠΎΠ³Π°ΡΡΡΠ²ΠΎΡΠΎ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΈ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΠ΅Π½ΠΊΠΈΠ½Ρ, Π½Π΅ ΠΌΠΎΡΠ° Π΄Π° ΠΊΡΠΏΡΠ²Π°ΡΠ΅ ΡΠΊΠ°ΠΏΠΈ ΠΏΠ»Π°ΡΠ΅Π½ΠΈ Π΄ΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎΡΡΠΎΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡ
β3. ΠΠ΅ΡΠ½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅
ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠ½ΠΎΠ³Ρ ΡΠ΄ΠΎΠ±Π΅Π½. Π’ΡΠΊΠ°, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π²ΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π΅ ΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠΎΡ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ°, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ Π½Π΅Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΠ΄Π΅ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ° ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ.
β4. ΠΡΠΈΡΠ°ΡΠ΅Π»ΡΠΊΠ° Π·Π°Π΅Π΄Π½ΠΈΡΠ°
ΠΠ°ΠΊΠΎ ΡΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²ΠΌΠ΅, ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΡΠΈΡ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΡΠ²Π° ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΡ Π΄ΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎΠ»Π΅ΠΌΠ° Π·Π°Π΅Π΄Π½ΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈ ΠΎΠΊΠΎΠ»Ρ ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π·Π° Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π²ΠΎ ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ. ΠΠ°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° Π΅ Π΅Π΄Π΅Π½ ΠΎΠ΄ ΡΠ°ΠΊΡΠΎΡΠΈΡΠ΅ ΡΡΠΎ Π³ΠΎ ΠΏΠΎΡΡΠΈΠΊΠ½ΡΠ²Π° ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ.
β5. ΠΠΎΡΡΠ°ΠΏΠ½ΠΎΡΡ Π½Π° REST API
ΠΠΎΠ΄Π΅ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΡΠΎ ΠΠ΅Π½ΠΊΠΈΠ½Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ REST API, ΠΊΠΎΡ Π³ΠΈ ΠΏΡΠΎΡΠΈΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. API Π·Π° Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΅ ΠΏΡΠ΅ΡΡΡΠ°Π²Π΅Π½ Π²ΠΎ ΡΡΠΈ Π²Π΅ΡΠ·ΠΈΠΈ: XML, JSON ΡΠΎ JSONP ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°, Python.
β6. ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅
ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π° DevOps. ΠΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΡΠΎ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ²Π° ΠΈΠ·Π²Π΅ΡΡΡΠ²Π°ΡΠ° Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ Π·Π°Π΄Π°ΡΠΈΡΠ΅. Π’Π΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π±ΡΠ·Π° ΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π³ΡΠ°Π΄Π΅ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ.
β7. ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ
ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ Π³ΡΠ°Π΄Π±ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΈ. ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π»ΠΈΠ²Π° Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅ΠΌΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°, ΡΠΏΠΎΡΠ΅Π΄ ΠΊΠΎΡΠ° ΠΈΠΌΠ° Π΅Π΄Π΅Π½ Π³Π»Π°Π²Π΅Π½ ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠΎΠ± ΠΌΠ°ΡΠΈΠ½ΠΈ. Slave ΠΌΠ°ΡΠΈΠ½ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΈ Π²ΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ³Π° Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ Π²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ. ΠΠ²ΠΈΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π³ΠΎ ΠΈΠ·Π΄Π²ΠΎΡΡΠ²Π°Π°Ρ ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
ΠΠΎΠ²Π΅Π΄ Π²ΠΎ GitLab
GitLab CI/CD ΠΏΡΠ²ΠΈΡΠ½ΠΎ Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ ΠΊΠ°ΠΊΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, Π½ΠΎ Π²ΠΎ 2015 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΠ²ΠΎΡ ΡΠ΅Ρ Π½Π° Π°Π»Π°ΡΠΊΠΈ Π±Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ Π²ΠΎ GitLab 8.0. ΠΠ΄Π΅Π½ GitLab CI/CD ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π½Π°Π΄ 25000 ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ. ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ°ΠΊΠ²ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ.
GitLab CI/CD ΠΈ Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° GitLab ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ Ruby ΠΈ Go. Π’ΠΈΠ΅ ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° ΠΠΠ’. GitLab CI/CD, ΠΏΠΎΠΊΡΠ°Ρ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Π°Π»Π°ΡΠΊΠΈΡΠ΅ CI/CD, ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ Π½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° GitLab CI/CD Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π΅ ΠΌΠ½ΠΎΠ³Ρ Π»Π΅ΡΠ½ΠΎ. ΠΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° GitLab CI/CD, ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ ΠΏΠΎΠ΄Π΅Π»Π΅Π½ Π½Π° ΡΠ°Π·ΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ ΡΠ΅ΠΊΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΈ ΠΏΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄. ΠΠ°Π΄Π°ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ ΡΠΈΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΅ΡΠ°Ρ.
ΠΠ°Π΄Π°ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. ΠΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·Π°ΡΠ° ΡΠ°Π·ΠΈ ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΎΡ CI/CD Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π·Π° ΡΠ°Π±ΠΎΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π½Π΅ΡΠ·ΠΈΠ½ΠΈΠΎΡ Π½Π°ΠΏΡΠ΅Π΄ΠΎΠΊ ΡΠΎ ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΡΡΠ°ΡΡΡΠΎΡ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° GitLab CI / CD Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ, ΠΌΠΎΠΆΠ΅Π±ΠΈ ΠΏΠΎΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ.
ΠΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° GitLab CI/CD ΠΈ GitLab
GitLab CI/CD Π΅ Π΅Π΄Π½Π° ΠΎΠ΄ Π½Π°ΡΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° DevOps. ΠΡΠΎΠ΅ΠΊΡΠΎΡ ΡΠ΅ ΠΎΠ΄Π»ΠΈΠΊΡΠ²Π° ΡΠΎ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠ½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°, Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ΅ Π»Π΅ΡΠ½ΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΈ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π°. ΠΠΊΠΎ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΡΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Π½ΠΈ ΡΠΎ GitLab CI/CD, ΡΠ»Π΅Π΄Π½Π°Π²Π° Π»ΠΈΡΡΠ° Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΠΎΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° ΡΠ΅ Π²ΠΈ Π΄Π°Π΄Π΅ ΠΎΠΏΡΡΠ° ΠΈΠ΄Π΅ΡΠ° Π·Π° ΡΠΎΠ° ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ ΠΎΠ΄ Π½Π΅Π°. Π’ΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° GitLab, Π²ΠΎ ΠΊΠΎΡΠ° Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ GitLab CI / CD.
β1. ΠΠΎΠΏΡΠ»Π°ΡΠ½ΠΎΡΡ
GitLab CI/CD Π΅ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ Π½ΠΎΠ²Π° Π°Π»Π°ΡΠΊΠ° ΠΊΠΎΡΠ° Π½Π°ΡΠ΄Π΅ ΡΠΈΡΠΎΠΊΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°. GitLab CI/CD ΠΏΠΎΠ»Π΅ΠΊΠ° ΡΡΠ°Π½Π° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½Π° CI/CD Π°Π»Π°ΡΠΊΠ° ΠΊΠΎΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ ΡΠΎΡΡΠ²Π΅Ρ. ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ. Π’ΠΎΠ° Π΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π° CI/CD Π°Π»Π°ΡΠΊΠ° Π²Π³ΡΠ°Π΄Π΅Π½Π° Π²ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° GitLab.
β2. ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° GitLab Pages ΠΈ Jekyll
Jekyll Π΅ ΡΡΠ°ΡΠΈΡΠ΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΡΠ°ΡΡΠΎΠ²ΠΈ ΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ GitLab Pages Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠ°ΡΡΠΎΠ²ΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° Π½Π° GitLab. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π³ΠΈ Π·Π΅ΠΌΠ° ΠΈΠ·Π²ΠΎΡΠ½ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π³ΠΎΡΠΎΠ²Π° ΡΡΠ°ΡΠΈΡΠΊΠ° Π»ΠΎΠΊΠ°ΡΠΈΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½ΠΈΠ². ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π³Π»Π΅Π΄ΠΎΡ ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ ΡΠΎ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° _config.yml
, ΠΊΠΎΡΠΈΡΡΠ΅Π½ ΠΎΠ΄ ΠΠ΅ΠΊΠΈΠ».
β3. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π·ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅, ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎΡΡΠ° Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΈ Π½ΠΈΠ²Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ. ΠΠ²Π° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π΄Π° ΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π½ΠΈΠ²Π½Π°ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π΄Π°ΡΡΠΌ.
β4. ΠΠ²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½Π° CI ΡΡΠΊΠ°ΡΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎΡΠΎ ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠΊΠ°ΡΠΈΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΡΡΠ΅Π΄ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π½Π° ΡΡΠΎΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΈΠ·Π½Π°ΡΠΌΡΠ²Π°ΡΠ΅ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ. ΠΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π²Π°ΠΆΠ½ΠΎ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΊΠΎΠ³Π° ΡΡΠ°Π½ΡΠ²Π° Π·Π±ΠΎΡ Π·Π° ΡΡΠ΅Π΄ΠΈΠ½ΠΈ ΠΊΠ°Π΄Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠ°Π°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΡΠΎΡΡΠΎΡΠ°Ρ ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°.
β5. ΠΠ»Π°ΡΠΊΠΈ Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ
ΠΠΎΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° GitLab Π΄ΠΎΠ²Π΅Π΄ΠΎΠ° Π΄ΠΎ ΡΠΎΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°. GitLab CI/CD ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΡΠ°Π½ΠΊΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅ΡΡΠΎΡ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π°Ρ Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ. ΠΠ²Π° Π³ΠΎ ΠΈΠ·Π΄Π²ΠΎΡΡΠ²Π° GitLab CI/CD ΠΎΠ΄ ΠΠ΅Π½ΠΊΠΈΠ½Ρ.
β6. ΠΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π΄ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°ΡΠ°
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° GitLab ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π΄ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ ΡΠΎΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»Π°Ρ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈ Π½Π° Π½ΠΈΠ²Π½ΠΈΡΠ΅ ΡΠ»ΠΎΠ³ΠΈ. ΠΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠΎΡΠ½ΠΎ Π·Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
β7. ΠΠΊΡΠΈΠ²Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° ΠΎΠ΄ Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ°
ΠΠΊΠΎΠ»Ρ GitLab ΡΠ΅ ΡΠ°Π·Π²ΠΈ Π°ΠΊΡΠΈΠ²Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡΠ°, ΠΊΠΎΡΠ° ΠΏΡΠΈΠ΄ΠΎΠ½Π΅ΡΡΠ²Π° Π·Π° ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° ΠΎΠ²Π°Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈ Π½Π΅ΡΠ·ΠΈΠ½ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ GitLab CI / CD. ΠΠ»Π°Π±ΠΎΠΊΠ°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π½Π° GitLab CI/CD ΠΈ GitLab, ΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΡΠΎ, Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° Π½Π°ΠΎΡΠ°ΡΠ΅ΡΠΎ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΠΏΡΠ°ΡΠ°ΡΠ°ΡΠ° ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π°Π°Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ GitLab CI/CD.
β8. ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π²Π΅ΡΠ·ΠΈΠΈ
GitLab CI/CD Π΅ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ΄ Ρ ΠΎΡΡΠΈΡΠ°Π½ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°ΡΠ° Π½Π° GitLab. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΡΡΠ²Π° Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π° GitHub, Π° CI/CD Π½Π°ΡΡΠΎΠ²ΠΎΠ΄ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Ρ ΠΎΡΡΠΈΡΠ°Π½ Π½Π° GitLab ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ GitLab CI/CD.
Π‘ΠΏΠΎΡΠ΅Π΄Π±Π° Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ GitLab CI/CD
ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ GitLab CI/CD ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π΄ΠΎΠ±ΡΠΈ Π°Π»Π°ΡΠΊΠΈ, ΠΈ Π΄Π²Π΅ΡΠ΅ ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²Π°Ρ ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΎΡ CI/CD Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π΅ΠΏΡΠ΅ΡΠ΅Π½ΠΎ. ΠΠΎ, Π°ΠΊΠΎ Π³ΠΈ ΡΠΏΠΎΡΠ΅Π΄ΠΈΡΠ΅, ΠΈΠ·Π»Π΅Π³ΡΠ²Π° Π΄Π΅ΠΊΠ°, ΠΈΠ°ΠΊΠΎ ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³Ρ Π½Π°ΡΠΈΠ½ΠΈ, ΡΠΈΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π°Π°Ρ Π΅Π΄Π½ΠΈ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈ Π½Π° Π½Π΅ΠΊΠΎΡ Π½Π°ΡΠΈΠ½.
ΠΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡΠ°
ΠΠ΅Π½ΠΊΠΈΠ½Ρ
GitLab CI/CD
ΠΡΠ²ΠΎΡΠ΅Π½ ΠΈΠ·Π²ΠΎΡ ΠΈΠ»ΠΈ Π·Π°ΡΠ²ΠΎΡΠ΅Π½ ΠΈΠ·Π²ΠΎΡ
ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΈΠ·Π²ΠΎΡ
ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΈΠ·Π²ΠΎΡ
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ°
ΠΠ°Π΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ.
ΠΠ΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΎΠ²Π° Π΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° GitLab.
Π£Π½ΠΈΠΊΠ°ΡΠ½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ
ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ.
ΠΠ»Π°Π±ΠΎΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ°.
ΠΠΎΠ΄Π΄ΡΡΠΊΠ°
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠ²Π°
ΠΠΎΡΡΠ°ΠΏΠ½ΠΎ.
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°
Π’Π΅ΡΠΊΠΎΡΠΈΠΈΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π°Π°Ρ
Π’Π΅ΡΠΊΠΎΡΠΈΠΈΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π°Π°Ρ
Π‘Π°ΠΌΠΎΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ
ΠΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΠΎΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΡ.
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ.
ΠΡΠ΅ΠΈΡΠ°ΡΠ΅ Π½Π° CI/CD ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΈ
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Jenkins Pipeline.
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ.
Π‘Π»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠ²Π°
ΠΠΎΡΡΠ°ΠΏΠ½ΠΎ.
ΠΠΊΠΎΡΠΈΡΡΠ΅ΠΌ
ΠΠΌΠ° Π½Π°Π΄ 1000 ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ.
Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° GitLab.
API
ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π½Π°ΠΏΡΠ΅Π΄Π΅Π½ API ΡΠΈΡΡΠ΅ΠΌ.
ΠΡΠ΄ΠΈ API Π·Π° ΠΏΠΎΠ΄Π»Π°Π±ΠΎΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° JavaScript
ΠΠΎΡΡΠ°ΠΏΠ½ΠΎ.
ΠΠΎΡΡΠ°ΠΏΠ½ΠΎ.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ Π΄ΡΡΠ³ΠΈ Π°Π»Π°ΡΠΊΠΈ
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ Π΄ΡΡΠ³ΠΈ Π°Π»Π°ΡΠΊΠΈ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ (Slack, GitHub).
ΠΠ½ΠΎΠ³Ρ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ - ΡΠΎ GitHub ΠΈ Kubernetes.
ΠΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΊΠ²Π°Π»ΠΈΡΠ΅ΡΠΎΡ Π½Π° ΠΊΠΎΠ΄ΠΎΡ
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ - ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ SonarQube ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ.
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ.
Π Π°Π·Π»ΠΈΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΡ ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ GitLab CI/CD
ΠΡΠΊΠ°ΠΊΠΎ Π³ΠΈ ΠΎΠΏΠΈΡΠ°Π²ΠΌΠ΅ ΠΈ ΡΠΏΠΎΡΠ΅Π΄ΠΈΠ²ΠΌΠ΅ ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ GitLab CI/CD, Π°ΡΠ΄Π΅ Π΄Π° ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ ΠΎΠ²ΠΈΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° DevOps. ΠΠΎΠ·Π½Π°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠΈ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ ΠΏΡΠ΅ΡΠΏΠΎΡΠΈΡΠ°Π°Ρ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ Π°Π»Π°ΡΠΊΠΈ ΠΏΡΠ΅Π΄ Π΄ΡΡΠ³Π°ΡΠ°.
- GitLab CI/CD ΠΌΠΎΠΆΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° Git ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°ΡΠ°. ΠΠ±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Π³ΡΠ°Π½ΠΊΠΈ Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ ΠΈ Π½Π΅ΠΊΠΎΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ. ΠΠΎ, ΠΠ΅Π½ΠΊΠΈΠ½Ρ, ΠΈΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°, Π½Π΅ Π΄Π°Π²Π° ΠΈΡΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π²ΡΠ· Π½ΠΈΠ² ΠΊΠ°ΠΊΠΎ GitLab CI / CD.
- ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠ½ΠΎΡ ΡΡΠΎ Π³ΠΎ ΠΈΠ·Π±ΠΈΡΠ°, ΡΠ°ΠΌΠΎΡΡΠΎΡΠ½ΠΎ Π³ΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°. Π GitLab CI / CD Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π²ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° GitLab, ΠΎΠ²Π° Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ ΠΊΠ»ΡΡ Π½Π° ΡΠ°ΠΊΠ°.
- GitLab CI/CD ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π½Π°ΠΏΡΠ΅Π΄Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Π·Π°Π΄Π°ΡΠΈ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠ²Π°Π° ΡΡΡΠ°Π½Π° Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΡΠ°Π·Π²ΠΈΠ΅Π½Π°.
ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ GitLab CI/CD: ΡΠ°ΠΊΠΈ ΠΈ ΡΠ»Π°Π±ΠΈ ΡΡΡΠ°Π½ΠΈ
Π‘Π΅Π³Π° ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ΄Π΅ΡΠ° Π·Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ GitLab CI/CD. Π‘Π΅Π³Π°, Π·Π° ΡΡΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ ΡΠΎ ΠΎΠ²ΠΈΠ΅ Π°Π»Π°ΡΠΊΠΈ, Π΄Π° Π³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π½ΠΈΠ²Π½ΠΈΡΠ΅ ΡΠΈΠ»Π½ΠΈ ΠΈ ΡΠ»Π°Π±ΠΈ ΡΡΡΠ°Π½ΠΈ. ΠΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π²Π΅ΡΠ΅ ΡΡΠ΅ ΠΎΠ΄Π»ΡΡΠΈΠ»Π΅ ΠΊΠΎΡΠ° Π°Π»Π°ΡΠΊΠ° Π²ΠΈ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π°. Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²ΠΎΡ Π΄Π΅Π» ΡΠ΅ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅.
β ΠΠ°ΠΊΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ
- ΠΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π½Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ.
- Π¦Π΅Π»ΠΎΡΠ½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π²ΡΠ· ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ°ΡΠ° Π½Π° Π°Π»Π°ΡΠΎΡ.
- ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠΊΠ°ΡΠΈ.
- ΠΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠ°Π·ΠΎΠ».
- ΠΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ.
- ΠΠ½ΠΎΠ³Ρ Π΄ΠΎΠ±Π°Ρ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Π°ΠΊΡΠ΅Π΄ΠΈΡΠΈΠ²ΠΈ.
- Π€Π»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΠΈ ΡΠ°Π·Π½ΠΎΠ²ΡΡΠ½ΠΎΡΡ.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ.
- Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π΅ ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ² Π½Π° ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ Π½ΠΈΠ²ΠΎ.
βΠ‘Π»Π°Π±ΠΎΡΡΠΈ Π½Π° ΠΠ΅Π½ΠΊΠΈΠ½Ρ
- ΠΡΠΈΠΊΠ»ΡΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΈ Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅.
- ΠΠΎΠ³Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π²ΠΎ ΠΌΠ°Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π½Π΅ΡΠ°Π·ΡΠΌΠ½ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΎ.
- ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π½Π° ΠΎΠΏΡΡΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΈΠ½ΡΠΈΡΠΈΡΠ΅ Π½Π° CI/CD.
β ΠΠ°ΠΊΠΈ ΡΡΡΠ°Π½ΠΈ Π½Π° GitLab CI/CD
- ΠΠΎΠ±ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ Docker.
- ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠΊΠ°ΡΠΈ.
- ΠΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π΄Π΅Π» ΠΎΠ΄ ΡΠ°Π·ΠΈΡΠ΅ Π½Π° ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΎΡ CI/CD.
- ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ Π½Π° Π½Π°ΡΠΎΡΠ΅Π½ Π°ΡΠΈΠΊΠ»ΠΈΡΠ΅Π½ Π³ΡΠ°ΡΠΈΠΊ ΠΏΡΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΡΠΈ ΡΠΎ Π·Π°Π΄Π°ΡΠΈ.
- ΠΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎΡΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠΊΠ°ΡΠΈ.
- ΠΠ΅ΡΠ½ΠΎΡΠΈΡΠ° Π½Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
- ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ.
- Π‘ΠΈΠ³ΡΡΠ΅Π½ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ.
βΠ‘Π»Π°Π±ΠΎΡΡΠΈ Π½Π° GitLab CI/CD
- ΠΠ° ΡΠ΅ΠΊΠΎΡΠ° Π·Π°Π΄Π°ΡΠ°, ΡΡΠ΅Π±Π° Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ ΠΈ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ / ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ.
- ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π³ΡΠ°Π½ΠΊΠΈΡΠ΅ ΠΏΡΠ΅Π΄ ΡΠΈΠ΅ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π΄Π° ΡΠ΅ ΡΠΏΠΎΡΠ°Ρ.
- ΠΠΎΠ³Π° ΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π°Ρ ΡΠ°Π·ΠΈΡΠ΅ Π½Π° Π³Π°ΡΠΎΠ²ΠΎΠ΄ΠΎΡ CI / CD, ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π΄Π²ΠΎΡΠ°Ρ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΡΠ°Π·ΠΈ Π²ΠΎ Π½ΠΈΠ².
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄
Π ΠΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈ GitLab CI/CD ΠΈΠΌΠ°Π°Ρ ΡΠ°ΠΊΠΈ ΠΈ ΡΠ»Π°Π±ΠΈ ΡΡΡΠ°Π½ΠΈ. ΠΠ΄Π³ΠΎΠ²ΠΎΡΠΎΡ Π½Π° ΠΏΡΠ°ΡΠ°ΡΠ΅ΡΠΎ ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅ ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ. Π‘Π΅ΠΊΠΎΡΠ° ΠΎΠ΄ Π°Π»Π°ΡΠΊΠΈΡΠ΅ CI/CD ΡΡΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄ΡΠ²Π°Π°Ρ Π΄Π΅Π½Π΅Ρ ΠΈΠΌΠ° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΈΠ°ΠΊΠΎ ΠΎΠ²ΠΈΠ΅ Π°Π»Π°ΡΠΊΠΈ ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠ°Ρ ΠΈΡΡΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΠ½Π° Π°Π»Π°ΡΠΊΠ°, Π° GitLab CI / CD Π΅ Π΄Π΅Π» ΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½Π° Π·Π° ΡΠΎΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ΄.
ΠΡΠΈ ΠΈΠ·Π±ΠΎΡΠΎΡ Π½Π° CI / CD ΡΠΈΡΡΠ΅ΠΌ, ΠΏΠΎΠΊΡΠ°Ρ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π²ΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΈ ΡΡΠΎΡΠΎΡΠΈΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ Π½Π΅Π³ΠΎ ΠΈ ΡΠΎ ΡΡΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ΅ Π½Π°Π²ΠΈΠΊΠ½Π°ΡΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° DevOps ΠΊΠΎΠΈ Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ.
ΠΠΎΠΈ CI/CD Π°Π»Π°ΡΠΊΠΈ Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅?
ΠΠ·Π²ΠΎΡ: www.habr.com