БСсплатная ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡ

ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ»ΠΈ Ρ†Π΅Π»ΡŒ. ΠžΡ‚Π²Π΅Ρ‡Ρƒ с практичСским ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом β€” бСсплатно, Π±Π΅Π· ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π².

Или Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ врСмя Π² Calendly

Leaf

CI для PHP и лСгаси Symfony/Laravel

CI для PHP и лСгаси Symfony/Laravel

CI для PHP ΠΈ лСгаси Symfony/Laravel ИсслСдованиС ΠΈ тСхничСский скоуп

ЧСм занимаюсь

РСшСния для "CI для PHP и лСгаси Symfony/Laravel"

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ внСдрСния CI для PHP ΠΈ лСгаси ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²:

  • Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ сборки ΠΈ автоматичСскоС тСстированиС
  • УскорСниС процСсса дСплоя ΠΈ сниТСниС ошибок
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° старого ΠΊΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ тСстов
  • Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с зависимостями ΠΈ инструмСнтами
БСсплатная ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡ

Π—Π°Ρ‡Π΅ΠΌ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ CI для PHP ΠΈ лСгаси ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Symfony ΠΈΠ»ΠΈ Laravel?

Π Π°Π±ΠΎΡ‚Π° с лСгаси-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π° PHP (особСнно с использованиСм Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Symfony ΠΈΠ»ΠΈ Laravel) часто сопровоТдаСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ: Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ сборки, чСловСчСскиС ошибки ΠΏΡ€ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅, отсутствиС Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ стиля ΠΊΠΎΠ΄Π°, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π‘Π΅Π· CI (Continuous Integration) Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ становятся ΠΊΡ€Π°ΠΉΠ½Π΅ уязвимыми для рСгрСссий ΠΈ слоТно управляСмыми.

Если ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

  • Зависит ΠΎΡ‚ старого ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ;
  • Π˜ΡΠΏΡ‹Ρ‚Ρ‹Π²Π°Π΅Ρ‚ слоТности с Π΄ΠΎΠ»Π³ΠΈΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ процСссами дСплоя;
  • НС ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ стратСгии тСстирования ΠΈ контроля качСства;
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ вСрсии зависимостСй ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²;
  • Π‘Ρ‚Π°Π» слоТным для Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки;
  • Π˜ΠΌΠ΅Π΅Ρ‚ тСхничСский Π΄ΠΎΠ»Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ,

β€” Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ CI ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ управляСмости.

CI ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ процСссы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ тСстированиС, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° соотвСтствиС стандартам, сборка ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ. Π­Ρ‚ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ бизнСс-Π·Π°Π΄Π°Ρ‡, Π° Π½Π΅ Π½Π° устранСнии послСдствий рСгрСссий.

Как я ΠΏΠΎΠ΄Ρ…ΠΎΠΆΡƒ ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ CI?

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ CI β€” это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎ Β«Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инструмСнт». Π­Ρ‚ΠΎ ΠΏΡ€ΠΎ созданиС Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ процСсса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ ограничСния. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ:

1. Аудит Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния

Π― Π½Π°Ρ‡ΠΈΠ½Π°ΡŽ с Π°Π½Π°Π»ΠΈΠ·Π° вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: ΠΊΠ°ΠΊ настроСны зависимости, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ тСсты, ΠΊΠ°ΠΊ устроСн процСсс сборки ΠΈ дСплоя. НапримСр:

  • Π•ΡΡ‚ΡŒ Π»ΠΈ тСсты? Если Π΄Π°, Ρ‚ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ критичСскиС ΠΏΡƒΡ‚ΠΈ? КакиС Π²ΠΈΠ΄Ρ‹ тСстов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ: unit, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅, e2e?
  • Как управляСтся установка зависимостСй? Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ composer.lock для фиксации вСрсий? Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ?
  • Π•ΡΡ‚ΡŒ Π»ΠΈ процСсс ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для ускорСния сборок? НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ composer cache ΠΈΠ»ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² CI/CD?
  • Как происходит Π΄Π΅ΠΏΠ»ΠΎΠΉ? Π­Ρ‚ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠΉ процСсс ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ автоматизация? Если Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°: Ρ‡Π΅Ρ€Π΅Π· скрипты, Ansible, Capistrano ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты?
  • КакиС Π΅ΡΡ‚ΡŒ ограничСния инфраструктуры? НапримСр, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ хостинг Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π΅ΠΏΠ»ΠΎΠΈ ΠΈΠ»ΠΈ трСбуСтся Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°?

На этом этапС Π²Π°ΠΆΠ½ΠΎ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΡƒΠ·ΠΊΠΈΠ΅ мСста ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ процСссы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. НапримСр, Ссли тСсты ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ»ΠΈ ΠΈΡ… нСдостаточно, это станСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.

2. Настройка Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°

ПослС Π°ΡƒΠ΄ΠΈΡ‚Π° я создаю Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½. Для PHP-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Symfony ΠΈΠ»ΠΈ Laravel это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

  • Установку зависимостСй Ρ‡Π΅Ρ€Π΅Π· composer install с использованиСм кэша для ускорСния процСсса;
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ phpcs ΠΈΠ»ΠΈ php-cs-fixer для обСспСчСния соотвСтствия кодстайлу;
  • Запуск тСстов: phpunit для unit- ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов, Behat для BDD ΠΈΠ»ΠΈ e2e-тСстов;
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ doctrine:migrations:diff ΠΈ doctrine:migrations:migrate для Symfony;
  • Π‘Π±ΠΎΡ€ΠΊΡƒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ): Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· npm run build ΠΈΠ»ΠΈ yarn build;
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² для дСплоя: Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π² Docker-ΠΎΠ±Ρ€Π°Π·.

На этом этапС Π²Π°ΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° выполняСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. НапримСр, Ссли тСсты ΠΏΠ°Π΄Π°ΡŽΡ‚, это сигнализируСт ΠΎ нСобходимости Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ самих тСстов.

3. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с систСмой контроля вСрсий

CI Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ с вашСй систСмой контроля вСрсий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GitHub, GitLab ΠΈΠ»ΠΈ Bitbucket). Π­Ρ‚ΠΎ позволяСт:

  • Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ pull request ΠΈΠ»ΠΈ push Π² Π²Π΅Ρ‚ΠΊΡƒ;
  • Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слияниС pull request, Ссли ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ;
  • АвтоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с тСстами.

На этом этапС я Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽ увСдомлСния: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Slack ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· email, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ статусС сборок.

4. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°

ПослС внСдрСния Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° я Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ для ускорСния сборки;
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя выполнСния;
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с инструмСнтами статичСского Π°Π½Π°Π»ΠΈΠ·Π°, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ PHPStan ΠΈΠ»ΠΈ Psalm;
  • Настройку дСплоя Π½Π° staging ΠΈ production окруТСния Ρ‡Π΅Ρ€Π΅Π· GitHub Actions, GitLab CI ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ CI/CD ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

НапримСр, Ссли сборка Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 10 ΠΌΠΈΠ½ΡƒΡ‚, я ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ, ΠΊΠ°ΠΊΠΈΠ΅ шаги ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

5. ДокумСнтация ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ настройки CI я создаю Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

  • ОписаниС всСх шагов ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°;
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ добавлСнию Π½ΠΎΠ²Ρ‹Ρ… тСстов ΠΈΠ»ΠΈ обновлСнию зависимостСй;
  • Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с систСмой контроля вСрсий ΠΈ CI/CD.

ДокумСнтация ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ быстрСС Π²Π»ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ CI для PHP ΠΈ лСгаси ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Symfony ΠΈΠ»ΠΈ Laravel β€” это Π½Π΅ просто настройка инструмСнта, Π° созданиС устойчивого процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ позволяСт ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгрСссии, ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ качСство ΠΊΠΎΠ΄Π°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ CI Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ.

Как ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°

Как ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°?

ΠžΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ° Π΄ΠΎ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π¨Π°Π³ 01

Π¨Π°Π³ 1: ΠšΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡ

ΠœΡ‹ обсуТдаСм Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ CI ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

Π¨Π°Π³ 02

Π¨Π°Π³ 2: Аудит

Π― Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ процСссы ΠΈ Π²Ρ‹ΡΠ²Π»ΡΡŽ основныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π¨Π°Π³ 03

Π¨Π°Π³ 3: Настройка

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ CI-инструмСнтов, настройка тСстов, сборки ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.

Π¨Π°Π³ 04

Π¨Π°Π³ 4: Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ систСмы, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° CI ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

Dedicated Team Building ΠΈ аутсорсингDevOps, Cloud ΠΈ инфраструктурныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠ˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ CRM ΠΈ ERP ΡΠΈΡΡ‚Π΅ΠΌΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сайтов ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° E-commerce ΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° кастомных Π²Π΅Π±-прилоТСнийВСхничСский консалтинг ΠΈ стратСгия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²Π’Ρ€Π΅Π½ΠΈΠ½Π³ΠΈ, наставничСство ΠΈ Π²ΠΎΡ€ΠΊΡˆΠΎΠΏΡ‹Dedicated Team Building ΠΈ аутсорсингDevOps, Cloud ΠΈ инфраструктурныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠ˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ CRM ΠΈ ERP ΡΠΈΡΡ‚Π΅ΠΌΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сайтов ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° E-commerce ΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° кастомных Π²Π΅Π±-прилоТСнийВСхничСский консалтинг ΠΈ стратСгия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²Π’Ρ€Π΅Π½ΠΈΠ½Π³ΠΈ, наставничСство ΠΈ Π²ΠΎΡ€ΠΊΡˆΠΎΠΏΡ‹
ΠŸΠΎΡ‡Π΅ΠΌΡƒ PlantagoWeb

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ β€” ΠΏΠΎΡ‚ΠΎΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ

БСсплатная ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡ

Π‘Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” Π΄ΠΎ любой ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈΠ· production

React, Vue, Node.js, Python, Kubernetes ΠΈ ΠΎΠ±Π»Π°ΠΊΠΎ Π² production

Π“ΠΈΠ±ΠΊΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

МоТно Π½Π°Π½ΡΡ‚ΡŒ Π½Π° фикс, этап ΠΈΠ»ΠΈ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½ΡƒΡŽ поставку β€” Π±Π΅Π· lock-in

ΠŸΡ€ΡΠΌΠ°Ρ коммуникация

ΠžΠ±Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ с Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ β€” Π±Π΅Π· мСнСдТСрского Ρ‚ΡƒΠΌΠ°Π½Π°

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ PlantagoWeb
Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
FAQs
Вопросы

Π§Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚ Π΄ΠΎ старта ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с вСрсиями PHP начиная с 5.6, Π½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π΄ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ вСрсии для большСй бСзопасности ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠžΡ‚ 1 Π΄ΠΎ 4 нСдСль, Π² зависимости ΠΎΡ‚ состояния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ объСма Π·Π°Π΄Π°Ρ‡.

Π§Π°Ρ‰Π΅ всСго я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с GitHub Actions, GitLab CI ΠΈ Jenkins, Π½ΠΎ Π²Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ инфраструктуры.

НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Если тСстов Π½Π΅Ρ‚, я ΠΏΠΎΠΌΠΎΠ³Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ дальшС.

ΠŸΡ€ΠΎΡΡ‚ΠΎ <a href='#' class='get-appointment--js'>Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ</a>, ΠΈ ΠΌΡ‹ обсудим ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.