Когда вы разрабатываете плагин для 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-архива при каждом релизе. Это избавляет от рутины и делает процесс релизов более профессиональным и надёжным.