Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Travis CI
Code

Как Развернуть Плагин Wordpress с TravisCI в WordPress.org

by
Difficulty:BeginnerLength:ShortLanguages:

Russian (Pусский) translation by Lubov (you can also view the original English article)

Не каждому нравится subversion.  Если вы используете Git для управления разработкой плагина, то синхронизация вашего репозитория Git с ропозиторием WordPress.org SVN будет очень трудной.  К счастью, мы можем использовать диспетчер развертки TravisCI для автоматизации развертки SVN после тестов.

Условия 

Вам нужны эти перед переходом:

  1. Учетная запись GitHub
  2. Учетная запись TravisCI
  3. Исходный код плагина 
  4. Репозиторий плагина WordPress.org SVN ( Вы его получите после утверждения плагина ) 

Первый Push в GitHub 

Для того, чтобы использовать TravisCI, мы должны разместить репозиторий плагина на GitHub. 

Сначала  создайте новый репозиторий в GitHub, перейдя на эту страничку и заполнив название репозитория. 

create new GitHub repository
GitHub new repository page

Дальше мы запишем все файлы плагина в Git и добавим их в репозиторий GitHub. Не забудьте заменить этот удаленный URL-адрес на собственный.  Контакт с TravisCI 

Контакт с TravisCI  

Нажмите Sync account в верхнем правом углу, если ваш только- что  созданный репозиторий не появился в списке.   Нажмите Sync account в верхнем правом углу, если ваш только- что  созданный репозиторий не появился в списке.

TravisCI account settings

У вас все настроено. Каждый раз, когда  вы что-нибудь меняете или кто-то  делает pull-запрос в GitHub, это запустит сборку на TravisCI.

Первая Сборка на TravisCI

TravisCI использует YAML файл под названием travis.yml в корневой папке вашего репозитория для настройки сборки.  Узнать больше о том, как контролировать жизненный цикл сборки, можно из документа настройки сборки.

Вот  базовый  конфигурационный файл, который инструктирует TravisCI для запуска сборки на РНР 7.0 и 7,1. Так как тестирование выходит за рамки этого урока, я заменил реальные тестовые команды на echo 'Tested'.

Запишите этот файл и сделайте его push в GitHub. Сборки TravisCI инициируются автоматически.

TravisCI current build

Добавляем Настройки Диспетчера Развертывания

Диспетчер развертывания запускается после прохождения теста и в соответствии  установленных условий (секция on). TravisCI включает около 40 официальных диспетчеров развертывания. К сожалению, ни одна из них не поддерживает репозитории WordPress.org subversion. Поэтому я разработал свою собственную службу. Вы можете найти ее на GitHub и сделать pull запрос.

Чтобы ее использовать, добавьте эти строки в конце .travis.yml.

Пояснение Настроек

before_deploy

Секция before_deploy дублирует три файла в директорию build, которая будет проверена в репозитории Subversion WordPress.org. В реальной ситуации тут вы будете запускать задания gulp или grunt для подготовки production-ready плагина.

Не копируйте файлы тестов или другие ненужные файлы в build, так как весь каталог build будет опубликован для пользователей, а им не нужны файлы ваших тестов.

provider та edge

Мы даем указание TravisCI установить мою службу с сadd-wordpress-plugin-deployment ветви https://github.com/TypistTech/dpl. Как только pull-запрос будет  добавлен, часть кода edge станет  ненужной

on

Секция on определяет будет ли проводиться развертывание. Развертывание будет инициировано только при условии удовлетворения всех параметров.

В вышеописанном примере мы развертываем в WordPress.org только в случае когда:

  1. эта сборка PHP 7.1
  2. это теговый комит
  3. это инициировано TangRufus / tutsplus-dpl-demo repo (форки и pull-запрос не будут инициировать развертывание)

slug

Ярлык плагина.

Если  URL вашего плагина https://wordpress.org/plugins/my-awesome-plugin/, то my-awesome-plugin - это ярлык плагина.

username

Ваше имя пользователя учетной записи WordPress.org, с которого вы отправляли плагин на проверку.

password

Пароль вашей учетной записи WordPress.org. Никогда не сохраняйте свой пароль в .travis.yml как простой текст!

В вышеописанном примере мы использовали переменную окружения $WORDPRESS_ORG_PASSWORD, которая может быть установлена в вэб панели TravisCI. Выберите Настройку (Settings) с меню с иконкой шестеренки, и нажмите Добавить (Add) в секции Переменных Окружения (Environment Variables). Никогда не включайте опцию "Display value in build log"!

TravisCI-environment-variables-settings

build_dir

Всё в этой директории будет добавлено в репозиторий WordPress.org subversion, то есть будет включено в zip файл, доступный к загрузке.

Мы установили значение build, потому что мы скопировали файлы плагина в build во время before_deploy.

Маркировка Тегами

Допустим мы исправили несколько ошибок и готовы опубликовать  новую версию в WordPress.org.

Эти команды добавляют изменения к ветви master, но не инициируют развертывания.

Только обозначенные тегами комиты инициируют развертывание:

Результаты

Вернитесь в TravisCI и откройте log сборки PHP 7.1. Вы должны увидеть, что развертывание добавлено в журнал.

И в трек WordPress.org (https://plugins.trac.wordpress.org/browser/<ярлык-вашего-плагина>):

WordPress plugin subversion trac

Предостережения

svn commit Дважды

Посколько TravisC оснащен старой версией subversion, которая не очень ладит с субдиректориями, я делаю svn commit дважды.

Первая svn commit изымает всё внутри trunk. Другая svn commit копирует всё из build_dir в trunk.

Эксперементальный

Этот диспетчер все еще эксперементальный и не включен в официальный репозиторий TravisCI. Вы можете отслеживать отзыв от TravisCI на его pull-запросы.

Использование edge не сливает мою ветку с главной ветвью потока. Есть шанс, что моя ветка находится за официальным репозиторием. Когда это случается, вы можете сделать форк моей ветки и перестроить ее, а потом поменять source в .travis.yml на ваш репозиторий GitHub.

Подводим Итоги

Для использования этого диспетчера развертывания:

  1. Создайте репозиторий плагина на GitHub.
  2. Подключите GitHub в TravisCI.
  3. Добавьте настройки в .travis.yml.
  4. Забросьте тег.

Я надеюсь, что все вышесказанное поможет вам развертывать ваши плагины в WordPress.org быстрее.

У WordPress чрезвычайно активная экономика. Существует множество тем, плагинов, библиотек и других продуктов, которые помогут вам построить ваш сайт или проект. Природа платформы с открытым кодом делает его чудесным выбором для улучшения навыков программирования. Как бы там не было, вы можете пересмотреть все, что есть у нас на Envato Marketplace.

Спасибо за чтение!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.