4.3 KiB
Использование окружений для проекта
Окружение может включать несколько веток: основная ветка (ветка проекта по-умолчанию) и опционально дополнительные ветки, которые будут влиты в основную ветку при клонировании репозитория (Дополнительных веток может быть больше одной, все они будут влиты в основную по очереди).
Когда код пушится в какую-либо ветку, создаются сборки со всеми окружениями, включающими данную ветку (Основная ветка неявно связана со всеми окружениями).
Это может быть полезно например, когда нужно отложить вливание ветки в master
-ветку в репозитории или
необходимо протестировать несколько веток вместе. Так же это может пригодится при деплое.
Примеры конфигурации и пояснения
Конфигурирование окружений производится через веб-интерфейс на странице создания/редактирования проекта.
Ниже пример для проекта с 3мя окружениями:
-
Production (
pr
) - Связан с веткой проекта по-умолчанию (Например:master
. По сути обычная сборка без слияния веток). -
Release candidate (
rc
) - В основную ветку (master
) вливается веткаfeature-A
. -
Test (
test
) - В основную ветку (master
) вливается веткаfeature-B
pr:
rc:
- feature-A
test:
- feature-B
Если код пушится в ветку master
, то создается 3 сборки по одной на каждое окружение.
Если код пушится в ветку feature-A
, то создается одна сборка с окружением rc
(То же самое произойдет и для ветки
feature-B
, только сборка будет с окружением test
).
Если код пушится в ветку feature-C
, которая не связаны ни с одним окружением, то создастся одна обычная сборка (Так
же как, если бы окружения не были настроены вовсе).
Использование переменной %ENVIRONMENT% в конфигурации проекта
Вы можете получить и использовать текущее окружение с помощью переменной %ENVIRONMENT%
(Смотри Использование
переменных в конфигурации проекта). Например:
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
). -
После создания запроса на слияние для добавления ветки в окружение, добавьте необходимые метки.