batyukovstudio / envoy
Envoy actions with GitHub hooks.
Requires
- php: >=8.1
- ext-curl: *
- laravel/envoy: ^2.9
- laravel/framework: ^9.0|^10.0|^11.0
- spatie/laravel-github-webhooks: ^1.2
This package is auto-updated.
Last update: 2026-04-22 11:40:16 UTC
README
Пакет для deploy-процессов через Laravel Envoy с webhook-интеграциями GitHub/GitLab и Telegram-уведомлениями.
1. Установка
composer require batyukovstudio/envoy
2. Публикация файлов
После установки опубликуйте файлы пакета:
php artisan vendor:publish --tag="bat-envoy"
Публикуются конфиги, маршруты, шаблон Envoy.blade.php, тесты контейнера и helper для Telegram (deploy/telegram.php).
3. Миграции
После публикации выполните миграции:
php artisan migrate
4. Настройка .env
Добавьте и заполните переменные:
ROOT_DIRECTORY= PHP_COMMAND=php BUILD_FRONT=true TELEGRAM_BOT_ENVOY_TOKEN= TELEGRAM_CHAT_ID_FOR_ENVOY= TELEGRAM_THREAD_ID_FOR_ENVOY= TELEGRAM_PROXY= GITHUB_WEBHOOK_SECRET= DEPLOY_GIT_BRANCH=dev GITLAB_TARGET_BRANCH= GITLAB_WEBHOOK_SECRET= NODE_PACKAGE_MANAGER= NODE_VERSION=
Обязательные:
ROOT_DIRECTORYPHP_COMMAND(если не указано, используетсяphp)TELEGRAM_BOT_ENVOY_TOKENTELEGRAM_CHAT_ID_FOR_ENVOYGITHUB_WEBHOOK_SECRETDEPLOY_GIT_BRANCH
Опциональные:
BUILD_FRONT(по умолчаниюtrue)TELEGRAM_THREAD_ID_FOR_ENVOY(для отправки в конкретный thread/topic)TELEGRAM_PROXY(если нужен прокси для Telegram Bot API)NODE_PACKAGE_MANAGERиNODE_VERSION(обязательны только приBUILD_FRONT=true)
Поддерживаемые форматы TELEGRAM_PROXY:
http://user:pass@host:porthttps://user:pass@host:portsocks5://user:pass@host:portsocks5h://user:pass@host:port
Поведение deploy:
BUILD_FRONT=true— вdeploystory выполняется задачаbuild-front.BUILD_FRONT=false— задачаbuild-frontпропускается.PHP_COMMAND=php8.3(пример) — все командыartisanвыполняются через указанную команду PHP.
Примечание: для .env.testing переменная ROOT_DIRECTORY должна указывать путь до тестируемого проекта.
5. Настройка config/app.php
Добавьте в массив return [...] файла config/app.php:
'root_directory' => env('ROOT_DIRECTORY', ''),
Это значение используется Envoy-задачами как рабочая директория проекта при выполнении deploy-команд.
6. Обновление пакета
Если пакет уже установлен и вышла новая версия:
composer update batyukovstudio/envoy
php artisan vendor:publish --tag="bat-envoy" --force
php artisan migrate
Важно про --force:
--forceперезаписывает уже опубликованные файлы.- Если вы вносили локальные правки в
Envoy.blade.php,deploy/telegram.php, конфиги или маршруты, сначала сохраните diff и проверьте изменения перед перезаписью. - Перепубликация обычно нужна, когда в новой версии изменились publishable-файлы (README/changelog релиза это обычно отражает).
После обновления проверьте:
- появились ли новые env-переменные;
- нужны ли дополнительные миграции;
- не конфликтуют ли ваши локальные правки с новой версией опубликованных файлов.
7. Сценарий: установка с нуля
- Установить пакет (
composer require ...). - Опубликовать файлы (
vendor:publish --tag="bat-envoy"). - Выполнить миграции (
php artisan migrate). - Заполнить
.env. - Проверить
config/app.phpи наличиеroot_directory.
8. Сценарий: обновление пакета
- Обновить пакет (
composer update batyukovstudio/envoy). - Сверить changelog/README новой версии.
- При необходимости перепубликовать файлы (
vendor:publish --tag="bat-envoy" --force). - Проверить новые env-переменные.
- Выполнить миграции (
php artisan migrate).