
Как автоматически собирать ZIP-архив плагина WordPress при релизе на GitHub?
4 октября 2025
Когда вы разрабатываете плагин для WordPress и публикуете релизы на GitHub, удобно, чтобы архив плагина создавался автоматически — без ручной упаковки и загрузки. Это можно легко реализовать с помощью GitHub Actions.
В этом посте разберём, как настроить простой workflow, который при публикации релиза будет создавать ZIP-файл вашего плагина и прикреплять его к странице релиза.
🔧 Что нужно
- Репозиторий на GitHub с вашим плагином WordPress.
- Файл
.distignore
— в нём вы перечисляете файлы и папки, которые не должны попадать в релиз (например,.git
,node_modules
,tests
и т. д.). - Файл workflow в каталоге
.github/workflows/
, напримерrelease.yml
.
⚙️ Пример workflow
Добавьте в ваш репозиторий файл .github/workflows/release.yml
со следующим содержимым:
name: zip file to release artifacts
on:
release:
types: [published]
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Remove files from list .distignore
run: |
xargs -a .distignore rm -rf
- name: Create ZIP
run: |
mkdir -p ${{ github.event.repository.name }}
ls -la
shopt -s extglob
mv !("${{ github.event.repository.name }}") ${{ github.event.repository.name }}/
zip -r ${{ github.event.repository.name }}-${{ github.ref_name }}.zip ${{ github.event.repository.name }}/
working-directory: ${{ github.workspace }}
- name: Upload artifact to release page
uses: softprops/action-gh-release@v2
with:
name: ${{ github.ref_name }}
files: ${{ github.event.repository.name }}-${{ github.ref_name }}.zip
🧠 Как это работает
- Триггер: Workflow запускается при публикации нового релиза (
on: release: types: [published]
). - Checkout: Действие
actions/checkout@v4
скачивает ваш код. - Очистка: Команда
xargs -a .distignore rm -rf
удаляет файлы, указанные в.distignore
. - Архивация: Скрипт перемещает все файлы в папку с именем репозитория, затем создаёт ZIP-архив с версией (
${{ github.ref_name }}
). - Публикация:
softprops/action-gh-release
прикрепляет созданный архив к странице релиза.
📦 Результат
После публикации нового релиза на GitHub в его разделе Assets автоматически появится ZIP-файл вашего плагина — готовый к загрузке в WordPress консоль или к распространению.

💡 Совет
Чтобы избежать ошибок:
- Убедитесь, что
.distignore
существует и корректно заполнен. - Проверяйте, что в названии архива нет пробелов и специальных символов.
- Можно добавить шаг для тестов или проверки синтаксиса PHP перед упаковкой.
🚀 Итого
Теперь ваш WordPress-плагин автоматически собирается и публикуется в виде ZIP-архива при каждом релизе. Это избавляет от рутины и делает процесс релизов более профессиональным и надёжным.