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

4.3 KiB
Raw Blame History

Использование окружений для проекта

Окружение может включать несколько веток: основная ветка (ветка проекта по-умолчанию) и опционально дополнительные ветки, которые будут влиты в основную ветку при клонировании репозитория (Дополнительных веток может быть больше одной, все они будут влиты в основную по очереди).

Когда код пушится в какую-либо ветку, создаются сборки со всеми окружениями, включающими данную ветку (Основная ветка неявно связана со всеми окружениями).

Это может быть полезно например, когда нужно отложить вливание ветки в 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).

  • После создания запроса на слияние для добавления ветки в окружение, добавьте необходимые метки.