Skip to content

Update envoy.md #404

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: 11.x
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions envoy.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ php vendor/bin/envoy

Все ваши задачи Envoy должны быть определены в файле `Envoy.blade.php` в корне вашего приложения. Например:

```bash
```blade
@servers(['web' => ['[email protected]'], 'workers' => ['[email protected]']])

@task('restart-queues', ['on' => 'workers'])
Expand All @@ -50,7 +50,7 @@ php vendor/bin/envoy

Вы можете принудительно запустить сценарий на вашем локальном компьютере, указав IP-адрес сервера как `127.0.0.1`:

```bash
```blade
@servers(['localhost' => '127.0.0.1'])
```

Expand All @@ -59,7 +59,7 @@ php vendor/bin/envoy

Используя директиву `@import`, вы можете импортировать другие файлы Envoy для добавления дополнительных историй и задач. После того как файлы были импортированы, вы можете выполнять задачи, содержащиеся в них, как если бы они были определены в вашем собственном файле Envoy:

```bash
```blade
@import('vendor/package/Envoy.blade.php')
```

Expand All @@ -68,7 +68,7 @@ php vendor/bin/envoy

Envoy позволяет легко запускать задачу на нескольких серверах. Во-первых, добавьте необходимые серверы в объявление `@servers`. Каждому серверу должно быть присвоено уникальное имя. После определения дополнительных серверов, вы можете использовать каждый из них в массиве задачи `on`:

```bash
```blade
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])

@task('deploy', ['on' => ['web-1', 'web-2']])
Expand All @@ -83,7 +83,7 @@ Envoy позволяет легко запускать задачу на нес

По умолчанию задачи будут выполняться на каждом сервере поочередно. Другими словами, задача должна завершится на первом сервере, прежде чем будет выполнена на втором. Если вы хотите запустить задачу на нескольких серверах параллельно, то добавьте параметр `parallel` в определение задачи:

```bash
```blade
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])

@task('deploy', ['on' => ['web-1', 'web-2'], 'parallel' => true])
Expand All @@ -106,7 +106,7 @@ Envoy позволяет легко запускать задачу на нес

Если вам нужны другие файлы PHP перед выполнением вашей задачи, то вы можете использовать директиву `@include` в верхней части вашего файла `Envoy.blade.php`:

```bash
```blade
@include('vendor/autoload.php')

@task('restart-queues')
Expand All @@ -125,7 +125,7 @@ php vendor/bin/envoy run deploy --branch=master

Вы можете получить доступ к параметрам ваших задач, используя [синтаксис «вывода» Blade](/docs/{{version}}/blade#displaying-data). Вы также можете определять операторы `if` и циклы Blade в своих задачах. Например, давайте проверим наличие переменной `$branch` перед выполнением команды `git pull`:

```bash
```blade
@servers(['web' => ['[email protected]']])

@task('deploy', ['on' => 'web'])
Expand All @@ -144,7 +144,7 @@ php vendor/bin/envoy run deploy --branch=master

Истории группируют набор задач под одним удобным названием. Например, вы можете сгруппировать запуск задач `update-code` и `install-dependencies`, перечислив их имена в определении истории `deploy`:

```bash
```blade
@servers(['web' => ['[email protected]']])

@story('deploy')
Expand Down Expand Up @@ -181,7 +181,7 @@ php vendor/bin/envoy run deploy

Перед выполнением каждой задачи будут выполняться все хуки `@before`, зарегистрированные в вашем скрипте Envoy. Хуки `@before` получают имя задачи, которая будет выполняться:

```php
```blade
@before
if ($task === 'deploy') {
// ...
Expand All @@ -194,7 +194,7 @@ php vendor/bin/envoy run deploy

После выполнения каждой задачи будут выполняться все хуки `@after`, зарегистрированные в вашем сценарии Envoy. Хуки `@after` получат имя запущенной задачи:

```php
```blade
@after
if ($task === 'deploy') {
// ...
Expand All @@ -207,7 +207,7 @@ php vendor/bin/envoy run deploy

После каждого сбоя задачи (выход с кодом состояния больше `0`) будут выполняться все хуки `@error`, зарегистрированные в вашем сценарии Envoy. Хуки `@error` получат имя запущенной задачи:

```php
```blade
@error
if ($task === 'deploy') {
// ...
Expand All @@ -220,7 +220,7 @@ php vendor/bin/envoy run deploy

Если все задачи выполнены без ошибок, то все хуки `@success`, зарегистрированные в вашем сценарии Envoy, будут выполнены:

```bash
```blade
@success
// ...
@endsuccess
Expand All @@ -231,7 +231,7 @@ php vendor/bin/envoy run deploy

После выполнения всех задач (независимо от статуса выхода) будут выполнены все хуки `@finished`. Хуки `@finished` получат код состояния завершенной задачи, который может быть `null` или `integer`, большим или равным `0`:

```bash
```blade
@finished
if ($exitCode > 0) {
// В одной из задач произошли ошибки ...
Expand All @@ -253,7 +253,7 @@ php vendor/bin/envoy run deploy

Если вы хотите получить запрос на подтверждение перед запуском конкретной задачи на своих серверах, вам следует добавить параметр `confirm` в директиву определения задачи. Этот параметр особенно полезен для деструктивных операций:

```bash
```blade
@task('deploy', ['on' => 'web', 'confirm' => true])
cd /home/user/example.com
git pull origin {{ $branch }}
Expand All @@ -271,15 +271,15 @@ Envoy поддерживает отправку уведомлений в [Slack

Вы должны передать полный WebHook URL в качестве первого аргумента директивы `@slack`. Вторым аргументом, передаваемым директиве `@slack`, должно быть имя канала `#channel` или имя пользователя `@user`:

```php
```blade
@finished
@slack('webhook-url', '#bots')
@endfinished
```

По умолчанию уведомления Envoy отправляют сообщение в канал уведомлений с описанием выполненной задачи. Однако вы можете назначить свое сообщение, передав третий аргумент директиве `@slack`:

```php
```blade
@finished
@slack('webhook-url', '#bots', 'Hello, Slack.')
@endfinished
Expand All @@ -290,7 +290,7 @@ Envoy поддерживает отправку уведомлений в [Slack

Envoy также поддерживает отправку уведомлений в [Discord](https://discord.com) после выполнения каждой задачи. Директива `@discord` принимает WebHook URL и сообщение. Вы можете получить WebHook URL, создав «Webhook» в настройках сервера и выбрав канал, на который WebHook должен публиковать сообщения. Вы должны передать полный WebHook URL в директиву `@discord`:

```php
```blade
@finished
@discord('discord-webhook-url')
@endfinished
Expand All @@ -301,7 +301,7 @@ Envoy также поддерживает отправку уведомлени

Envoy также поддерживает отправку уведомлений в [Telegram](https://telegram.org) после выполнения каждой задачи. Директива `@telegram` принимает идентификатор бота Telegram и идентификатор чата. Вы можете получить свой идентификатор бота, создав нового бота в [BotFather](https://t.me/botfather). Вы можете получить действительный идентификатор чата, используя [`@username_to_id_bot`](https://t.me/username_to_id_bot). Вы должны передать полный идентификатор бота и идентификатор чата в директиву `@telegram`:

```php
```blade
@finished
@telegram('bot-id','chat-id')
@endfinished
Expand All @@ -312,7 +312,7 @@ Envoy также поддерживает отправку уведомлени

Envoy также поддерживает отправку уведомлений в [Microsoft Teams](https://www.microsoft.com/en-us/microsoft-teams) после выполнения каждой задачи. Директива `@microsoftTeams` принимает Webhook Teams (обязательно), сообщение, цвет темы (success, info, warning, error) и массив параметров. Вы можете получить ваш Webhook Teams, создав новый [входящий веб-хук](https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook). API Teams имеет множество других атрибутов для настройки вашего сообщения, таких как заголовок, краткое описание и разделы. Дополнительную информацию можно найти в [документации Microsoft Teams](https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using?tabs=cURL#example-of-connector-message). Вы должны передать полный URL веб-хука в директиву `@microsoftTeams`:

```php
```blade
@finished
@microsoftTeams('webhook-url')
@endfinished
Expand Down