Использование окружений для проекта =================================== Окружение может включать несколько веток: основная ветка (ветка проекта по-умолчанию) и опционально дополнительные ветки, которые будут влиты в основную ветку при клонировании репозитория (Дополнительных веток может быть больше одной, все они будут влиты в основную по очереди). Когда код пушится в какую-либо ветку, создаются сборки со всеми окружениями, включающими данную ветку (Основная ветка неявно связана со всеми окружениями). Это может быть полезно например, когда нужно отложить вливание ветки в `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/`). * Включить отправку события "Pull request". * Создать метки (labels) для ваших окружений в формате: `env:` (Например: `env:test`). * После создания запроса на слияние для добавления ветки в окружение, добавьте необходимые метки.