Этот пост был изначально опубликован в моем блоге AT WPMastery.xyz/connurecured-integration-for-wordpress-developers/ Отказ
Написание высококачественного и стабильного кода для WordPress является жестким. Ядро написано в процедурном стиле и сохранение данных в синхронизации между местными, постановками и производственными условиями может быть кошмаром. Оставаясь на вершине изменений в новых выпусках, внедрение лучших практик во время записи кода, а также обеспечение того, чтобы ваш код хорошо воспроизводиться с третьим сторонним плагинами, требует нашего полного внимания.
Но если ваше агентство WP хочет доставлять веб-сайты, плагины или темы, которые запускаются стабильными и хорошо выполняются, вам нужно писать ремонтопригодным, исполнительным и защищенным кодом. Непрерывная интеграция может играть огромную роль в процессе разработки сайтов WordPress и продуктов WordPress. В этом посте я хочу поделиться с вами, как и почему я добавил постоянную интеграцию в мои рабочие процессы разработки WordPress.
Сначала сделайте шаг назад и посмотрите, какая постоянная интеграция. Microsoft определяет CI как:
Непрерывная интеграция (CI) — это процесс автоматизации сборки и тестирования кода каждый раз, когда член команды совершает изменения в управлении версиями. CI призывает разработчиков поделиться своими тестами кода и единиц, объединяя их изменения в репозиторий общих версий после каждой небольшой завершения задач.
Сэм Гуккенхеймер — https://docs.microsoft.com/en-us/azure/devops/learn/what-is-continuous-integration
В мире WordPress это означает, что ваш код тема или код плагина будет тщательно управляться в системах управления версиями, и, таким образом, можно проанализировать и тестировать автоматически. При каждом коммитировании к вашему репозитории — независимо от того, если это Github, Bitbucket или что-то еще — вы можете выполнить серию задач, которые контролируют и обеспечивают качество вашего кода.
Как вы, возможно, испытали себя, работа над проектами WordPress не всегда работает в этом красиво структурированном виде. Иногда мы должны развертывать горячие исправления на живых веб-сайтах, изменять код через SFTP непосредственно на сервере или даже не настроить контроль версии, потому что проект настолько, казалось бы, маленький.
Я был виновен в том, чтобы сделать все это. И я оплатил цену более одного раза. Проекты выросли из рук, ошибки, которые когда-то фиксировали, были повторно представлены, случайно перезаписывая горячее исправление, и я потерял отслеживание того, что ошибки все еще были открыты. Вы, наверное, видели проекты очень грязными очень быстро.
Вот почему я отправился, чтобы найти решение для этих ситуаций. Я хотел принести предсказуемость и устойчивость к моим проектам. Непрерывная интеграция пришла к спасению!
Например, я прочитал, что разработчики WordPress могут использовать непрерывную интеграцию для запуска Phpunit Tests , автоматически разверните код на вашу постановку или живой сервер или используйте инструменты анализа статического кода, такие как Phploc Чтобы сделать ваши сборки и развертывания, если ваш код становится слишком грязным. Это звучало как именно то, что мне нужно, поэтому я реализовал CI в моих рабочих процессах развития.
Начало работы с непрерывной интеграцией для разработки WordPress
Реализация непрерывной интеграции не требует много денег. На самом деле, я управляю своими собственными трубопроводами CI, основанные на капельке цифрового океана в размере 5 руб./MO. Тем не менее, потребовалось много часов, чтобы уточнить процесс. Будьте готовы провести некоторое время, если вы реализуете CI самостоятельно.
Позвольте мне пройтись через пошаговый процесс, я принял для автоматизации моих развертываний к серверам Cloudways. Это должно дать вам грубую идею о том, как вы можете использовать непрерывную интеграцию в вашем собственном процессах развития WordPress.
Во-первых, Я настроил капельку Ubuntu на цифровом океане за 5 долларов в месяц. Я не хотел тратить огромные суммы на моем трубопроводе CI и хотел избежать ограничения 3-го первых инструментов — поэтому хостинг моего собственного сервера чувствовал себя как путь. Оказалось гораздо меньше усилий в обслуживании, чем я ожидал. У меня есть Реферальная ссылка на цифровой океан, который дает вам 50 долларов в кредит Отказ
Во-вторых, Я установил программное обеспечение непрерывного интеграции Дженкинс на капельке Ubuntu. Я вижу Дженкинс как виртуальный дворецкий, который обрабатывает для меня автоматизации. Я подключил Jenkins к моим репозиториям GitHub, чтобы он имел доступ к файлам проекта, на котором я работаю в любое время.
В-третьих, Каждый проект (например, плагин или тема) необходим для инструмента Phopload установлены. Phopload можно использовать для развертывания кода через SFTP/FTP и был идеальным выбором для автоматического развертывания независимо от вашего целевого сервера. Хотя Cloudways предлагает автоматическое развертывание через GitHub, я обнаружил, что его ограничение. Я мог бы просто подключить один репозиторий на приложение, поэтому он не будет работать на плагин и тему в том же приложении, если они проживают в двух репозиториях.
В-четвертых, Я настроил простые автоматизационные трубопроводы в Дженкинсах, используя Jenkinsfiles Отказ Это скрипты, написанные в Groovy (у меня нет знаний о Groovy Whatsover), что рассказываю Дженкинс, что делать, когда вы совершаете код для ваших репозиторов. В моем случае они вызывают Phopload и выполняют анализ статического кода. Вскоре они также будут вызвать тестирование подразделения и оптимизацию кода.
Это все, что нужно для меня автоматизировать мои развертывания при работе над кодом. Я больше не касаюсь клиентов Filezilla или других SFTP, чтобы загрузить код на постановку или живой сервер. Это все полностью автоматизировано, и я люблю все это. Честно говоря, настраивая этот трубопровод CI был довольно напряжением. Были моменты, когда я чувствовал, что сдался и бросил свой MacBook на стену или мой Win10 Desktop из окна. Но в конце концов, работа окупается.
Проблемы, которые я решаю с непрерывной интеграцией
Я хотел добавить CI на свои рабочие процессы разработки WordPress, чтобы избавиться от нескольких проблем. Это были вещи, которые я сталкивался на ежедневной основе, и что привело к мне время тратить время в моих проектах. И время последнее, что мы разработчики могут позволить себе тратить.
- Проще всего сотрудничество в командах. Я в нескольких проектах, которые включают другое агентство. Зная, что мы все вынуждены работать в том же репозитории оптимизации коммуникации и повышает прозрачность в том, что происходит на постановке и живом сервере.
- Нет более случайно перезаписанных файлов. Особенно в упомянутых выше проектах, это произойдет, что передачи файлов через SFTP случайно перезаписывают файлы, которые были изменены на сервере вместо в репозитории. Кто-то будет развернуть горячую фиксирование на Live Server, который затем получит NuKed по следующему развертыванию кода — принося ошибку обратно на сайт Live.
- Нет больше ручных передач файлов. Я признаю это, я ленивый. Надо всегда передавать мой код вручную, используя Filezilla, раздражал меня.
Если вы все еще читаете статью, я хочу поблагодарить вас за последующие моих мыслей о внедрении непрерывной интеграции для разработки WordPress. Может быть, вы теперь также видим потенциал, который он может принести в вашу организацию. И даже как один фрилансер, вы можете сэкономить довольно некоторое время с CI и его возможностями автоматизации.
Оригинал: «https://dev.to/jankoch/how-i-use-continuous-integration-in-wp-development-4n19»