php-censor/docs/ru/environments.md
2018-05-02 21:55:00 +07:00

82 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Использование окружений для проекта
===================================
Окружение может включать несколько веток: основная ветка (ветка проекта по-умолчанию) и опционально дополнительные
ветки, которые будут влиты в основную ветку при клонировании репозитория (Дополнительных веток может быть больше
одной, все они будут влиты в основную по очереди).
Когда код пушится в какую-либо ветку, создаются сборки со всеми окружениями, включающими данную ветку (Основная ветка
неявно связана со всеми окружениями).
Это может быть полезно например, когда нужно отложить вливание ветки в `master`-ветку в репозитории или
необходимо протестировать несколько веток вместе. Так же это может пригодится при деплое.
Примеры конфигурации и пояснения
--------------------------------
Конфигурирование окружений производится через веб-интерфейс на странице создания/редактирования проекта.
Ниже пример для проекта с 3мя окружениями:
* Production (`pr`) - Связан с веткой проекта по-умолчанию (Например: `master`. По сути обычная сборка без слияния
веток).
* Release candidate (`rc`) - В основную ветку (`master`) вливается ветка `feature-A`.
* Test (`test`) - В основную ветку (`master`) вливается ветка `feature-B`
```yml
pr:
rc:
- feature-A
test:
- feature-B
```
Если код пушится в ветку `master`, то создается 3 сборки по одной на каждое окружение.
Если код пушится в ветку `feature-A`, то создается одна сборка с окружением `rc` (То же самое произойдет и для ветки
`feature-B`, только сборка будет с окружением `test`).
Если код пушится в ветку `feature-C`, которая не связаны ни с одним окружением, то создастся одна обычная сборка (Так
же как, если бы окружения не были настроены вовсе).
Использование переменной %ENVIRONMENT% в конфигурации проекта
-------------------------------------------------------------
Вы можете получить и использовать текущее окружение с помощью переменной `%ENVIRONMENT%` (Смотри [Использование
переменных в конфигурации проекта](interpolation.md)). Например:
```yml
setup:
mysql:
- "DROP DATABASE IF EXISTS project_name_%ENVIRONMENT%;"
- "CREATE DATABASE project_name_%ENVIRONMENT%;"
test:
...
deploy:
mage:
env: %ENVIRONMENT%
```
Добавление веток в окружение с помощью webhook-а
------------------------------------------------
### Gogs
Необходимо подготовить проект в веб-интерфейсе Gogs:
* Создать webhook для проекта.
* Установить в поле "Payload URL" URL-адрес webhook-а для Gogs из PHP Censor (Например:
`http://php-censor.local/webhook/gogs/<project_id>`).
* Включить отправку события "Pull request".
* Создать метки (labels) для ваших окружений в формате: `env:<environment-name>` (Например: `env:test`).
* После создания запроса на слияние для добавления ветки в окружение, добавьте необходимые метки.