Бправочная: ΠΊΠ°ΠΊ устроСн процСсс Continuous Integration

БСгодня ΠΌΡ‹ обратимся ΠΊ истории Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°, обсудим слоТности внСдрСния CI ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ нСсколько популярных инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Бправочная: ΠΊΠ°ΠΊ устроСн процСсс Continuous Integration
/ Flickr / Altug Karakoc / CC BY / Π€ΠΎΡ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ

Π’Π΅Ρ€ΠΌΠΈΠ½

Continuous Integration (нСпрСрывная интСграция) β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΠΉ частоС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сборок ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ тСстированиС ΠΊΠΎΠ΄Π°.

ЦСль β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ прСдсказуСмым ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°Π³ΠΈ ΠΈ ошибки Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΈΡ… исправлСниС.

Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Continuous Integration появился Π² 1991 Π³ΠΎΠ΄Ρƒ. Π•Π³ΠΎ Π²Π²Π΅Π» Π² ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ языка UML Π“Ρ€Π°Π΄ΠΈ Π‘ΡƒΡ‡ (Grady Booch). Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ прСдставил ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ CI ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ собствСнной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π‘ΡƒΡ‡Π°. Он ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π» ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм. Π“Ρ€Π°Π΄ΠΈ Π½Π΅ описал ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. Но ΠΏΠΎΠ·ΠΆΠ΅ Π² своСй ΠΊΠ½ΠΈΠ³Π΅ «Object-Oriented Analysis and Design with Applications» ΠΎΠ½ сказал, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ β€” ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ выпуск Β«Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ²Β».

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

Π’ 1996 Π³ΠΎΠ΄Ρƒ CI пСрСняли создатСли ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования (XP) β€” ΠšΠ΅Π½Ρ‚ Π‘Π΅ΠΊ (Kent Beck) ΠΈ Π ΠΎΠ½ ДТСффрис (Ron Jeffries). НСпрСрывная интСграция стала ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. ΠžΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ XP ΡƒΡ‚ΠΎΡ‡Π½ΠΈΠ»ΠΈ трСбования ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ CI ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° нСсколько Ρ€Π°Π· Π² дСнь.

Π’ Π½Π°Ρ‡Π°Π»Π΅ 2000-Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡŽ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ стал ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основатСлСй Agile Alliance ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π€Π°ΡƒΠ»Π΅Ρ€ (Martin Fowler). Π•Π³ΠΎ экспСримСнты с CI ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ появлСнию ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ инструмСнта Π² этой сфСрС β€” CruiseControl. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρƒ создал ΠΊΠΎΠ»Π»Π΅Π³Π° ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π° β€” ΠœΡΡ‚Ρ‚ΡŒΡŽ ЀоммСль (Matthew Foemmel).

Π¦ΠΈΠΊΠ» сборки Π² инструмСнтС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΠΌΠΎΠ½Π°, пСриодичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅Π³ΠΎ систСму управлСния вСрсиями Π½Π° измСнСния Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. РСшСниС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ сСгодня β€” ΠΎΠ½ΠΎ распространяСтся ΠΏΠΎΠ΄ BSD-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ.

Π‘ появлСниСм софта для CI ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΈΠΌΠ°Ρ‚ΡŒ всё большС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Богласно исслСдованию Forrester [стр.5 ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°], Π² 2009 Π³ΠΎΠ΄Ρƒ 86% ΠΈΠ· пятидСсяти ΠΎΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… тСхнологичСских ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ использовали ΠΈΠ»ΠΈ внСдряли CI-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

БСгодня ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Continuous Integration примСняСтся организациями ΠΈΠ· самых Ρ€Π°Π·Π½Ρ‹Ρ… индустрий. Π’ 2018 Π³ΠΎΠ΄Ρƒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ ΠΏΡ€ΠΎΠ²Ρ‘Π» опрос срСди ИВ-спСциалистов ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈΠ· сфСры услуг, образования ΠΈ финансов. Из ΡˆΠ΅ΡΡ‚ΠΈ тысяч рСспондСнтов 58% ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ инструмСнты ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ CI.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ΠžΡΠ½ΠΎΠ²Ρƒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄Π²Π° инструмСнта β€” систСма контроля вСрсий ΠΈ CI-сСрвСр. ПослСдний ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ физичСским устройством, Ρ‚Π°ΠΊ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ срСдС. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ€Π°Π· Π² дСнь Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. CI-сСрвСр автоматичСски ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ со всСми зависимости ΠΈ выполняСт сборку. ПослС β€” запускаСт ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈ ΡŽΠ½ΠΈΡ‚-тСсты. Если тСсты проходят ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Ρ‚ΠΎ CI-систСма Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ΄.

ΠžΠ±Ρ‰ΡƒΡŽ схСму процСсса ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Бправочная: ΠΊΠ°ΠΊ устроСн процСсс Continuous Integration

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ CI ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ряд Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ:

  • НСмСдлСнно ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΡ€ΠΈΡˆΡ‘Π» Π² CI ΠΈΠ· ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π³ΠΎΠ² β€” самая приоритСтная Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².
  • ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ постоянно ΠΈΡΠΊΠ°Ρ‚ΡŒ Β«ΡƒΠ·ΠΊΠΈΠ΅ мСста» Π² процСссС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ…. НапримСр, часто Β«Π±ΡƒΡ‚Ρ‹Π»ΠΎΡ‡Π½Ρ‹ΠΌ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΠΌΒ» ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ оказываСтся тСстированиС.
  • ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ сборки ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π°Ρ‰Π΅. Π Π°Π· Π² дСнь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

БлоТности внСдрСния

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” высокиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ расходы. Π”Π°ΠΆΠ΅ Ссли компания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ CI-инструмСнты (ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ дальшС), Ρ‚ΠΎ Π΅ΠΉ всС Ρ€Π°Π²Π½ΠΎ придСтся ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ дСньги Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ инфраструктуры. Однако Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Они ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ сборку Ρ€Π°Π·Π½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. Плюс ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ платят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° инфраструктурС.

Богласно опросам [стр.14 ΡΡ‚Π°Ρ‚ΡŒΠΈ], нСпрСрывная интСграция ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сотрудников ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ врСмя). Им приходится ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ инструмСнты, Π° ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π½Π΅ всСгда ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ с ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ приходится Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈ сСрвисами Β«Π½Π° Ρ…ΠΎΠ΄ΡƒΒ».

Π’Ρ€Π΅Ρ‚ΡŒΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π‘ Π½Π΅ΠΉ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ с большим ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ legacy-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ тСстами. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ просто ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ CI.

Бправочная: ΠΊΠ°ΠΊ устроСн процСсс Continuous Integration
/ Flickr / theilr / CC BY-SA

ΠšΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚

Одними ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… прСимущСства ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΠΎΡ†Π΅Π½ΠΈΠ»ΠΈ ИВ-Π³ΠΈΠ³Π°Π½Ρ‚Ρ‹. Google ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с сСрСдины 2000-Ρ…. CI Π²Π½Π΅Π΄Ρ€ΠΈΠ»ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ поисковой систСмы. НСпрСрывная интСграция ΠΏΠΎΠΌΠΎΠ³Π»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ. БСйчас CI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ всС подраздСлСния ИВ-Π³ΠΈΠ³Π°Π½Ρ‚Π°.

НСпрСрывная интСграция ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈ нСбольшим компаниям, Π° Π΅Ρ‰Π΅ инструмСнты CI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ финансовыС ΠΈ мСдицинскиС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. НапримСр, Π² Morningstar сСрвисы Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ ΠΏΠ°Ρ‚Ρ‡ΠΈΡ‚ΡŒ уязвимости Π½Π° 70% быстрСС. А мСдицинская ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Philips Healthcare смогла Π² Π΄Π²Π° Ρ€Π°Π·Π° ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ тСстированиС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Π’ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… популярных инструмСнтов для CI:

  • Jenkins β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных CI-систСм. Она ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ тысячи ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ VCS, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сСрвисами. Jenkins ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈ ΠΌΡ‹ Π² 1cloud: инструмСнт Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π½Π°ΡˆΡƒ DevOps-систСму. Он рСгулярно провСряСт Git-Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для тСстирования.
  • Buildbot β€” python-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для написания собствСнных процСссов Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка инструмСнта довольно слоТна, ΠΎΠ΄Π½Π°ΠΊΠΎ это компСнсируСтся ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ возмоТностями кастомизации. Π‘Ρ€Π΅Π΄ΠΈ достоинств Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Π΅Π³ΠΎ Π½Π΅Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ€Π΅ΡΡƒΡ€ΡΠΎΡ‘ΠΌΠΊΠΎΡΡ‚ΡŒ.
  • Concourse CI β€” сСрвСр ΠΎΡ‚ Pivotal, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker. Concourse CI интСгрируСтся с Π»ΡŽΠ±Ρ‹ΠΌΠΈ инструмСнтами ΠΈ систСмами контроля вСрсий. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ систСма ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² компаниях Π»ΡŽΠ±Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².
  • Gitlab CI β€” инструмСнт, встроСнный Π² систСму контроля вСрсий GitLab. БСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ YAML-Ρ„Π°ΠΉΠ»Ρ‹. Как ΠΈ Concourse, Gitlab CI примСняСт Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ процСссы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.
  • Codeship β€” ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ CI-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с GitHub, GitLab ΠΈ BitBucket. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠ»Π³ΠΎΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки β€” Π² Codeship доступны стандартныС прСдустановлСнныС CI-процСссы. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… (Π΄ΠΎ 100 сборок Π² мСсяц) ΠΈ open source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Codeship доступСн бСсплатно.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΈΠ· нашСго ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠ³Π°:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com