Тема
Интеграции с CI/CD
Интеграция с CI/CD нужна, чтобы запускать автотесты из интерфейса DoQA: целым прогоном, выборочно из плеера прогона или по одному тесту. Отправлять результаты в DoQA можно и без нее: утилитой doqa-cli или через API, см. Автотесты.
На уровне администратора подключаются GitLab, Jenkins и TeamCity; такое подключение видно всем пространствам тенанта. Остальные CI-системы (всего DoQA поддерживает девять) и несколько подключений одного типа настраиваются на уровне пространства — см. Подключение CI-систем.
GitLab подключается дважды
Раздел «Интеграции» состоит из двух блоков — «Интеграции с трекерами» и «Интеграции с CI/CD». Это две независимые интеграции с разными подключениями. Если GitLab уже подключен как трекер багов (см. GitLab), для запуска автотестов его всё равно нужно подключить отдельно — в блоке «Интеграции с CI/CD».
Подключение CI/CD-системы
Доступ к разделу имеют пользователи с правами на создание или администрирование проектов.
- Перейдите в настройки администратора, раздел «Интеграции».
- В блоке «Интеграции с CI/CD» на карточке нужной системы — GitLab, Jenkins или TeamCity — нажмите «Подключить».
- Заполните «URL-адрес» и «API токен»:
- GitLab — токену нужны права (scopes)
apiиread_api; - Jenkins — токен в формате
логин:api-токен; - TeamCity — токен доступа из профиля пользователя.
- GitLab — токену нужны права (scopes)
- Нажмите «Сохранить».

Если интеграция подключена, кнопка «Подключить» на карточке сменится на «Отключить».
Каждая система подключается один раз на весь тенант. Если нужно несколько подключений одного типа (например, два инстанса Jenkins), заводите их в настройках пространства, см. Подключение CI-систем.
Привязка проектов к пространству
Одного подключения интеграции недостаточно: нужно указать, какие проекты из GitLab доступны для запуска автотестов в конкретном пространстве.
- Перейдите в пространство и в левом боковом меню нажмите на иконку настроек.
- Откройте вкладку «Настройки CI/CD».
- Под подсказкой «Выберите проекты, к которым хотите сделать привязку:» отметьте чек-боксами нужные проекты. Чек-бокс «Имя проекта» в шапке списка выбирает и снимает все сразу.
- Нажмите «Сохранить». Кнопка неактивна, пока в списке ничего не изменилось.

Отмеченные проекты будут доступны для выбора при создании прогона через запуск автотестов и при запуске автотестов из плеера прогона.
Если проектов не видно
На вкладке «Настройки CI/CD» два пустых состояния, и означают они разное.
- «Интеграция CI/CD не настроена» и ссылка «Перейдите в раздел Интеграции» — GitLab не подключен в блоке «Интеграции с CI/CD». Подключите его, см. Подключение CI/CD-системы.
- «Список доступных проектов из CI/CD пуст. Проверьте настройки интеграции и валидность токена.» — интеграция подключена, но DoQA не получила от GitLab ни одного проекта. Проверьте URL-адрес, срок действия токена и его права (
api,read_api), а также то, что у владельца токена есть доступ к нужным проектам.
Что должен уметь ваш пайплайн
При старте пайплайна DoQA передает в него набор переменных DOQA_* — полный список см. в Переменных пайплайна. Списка тестов среди переменных нет.
Чтобы запускались именно те тесты, которые выбрал пользователь, пайплайн должен сам запросить тест-план и отфильтровать тесты по полученным Allure ID:
GET {DOQA_URL}/api/integrations/ci/test-plan
?pipeline_id=$CI_PIPELINE_ID
&ci_project_id=$CI_PROJECT_ID
&space_id=$DOQA_SPACE_ID
&token=$DOQA_TOKENВ ответ приходят список Allure ID (tests), ID прогона в DoQA (runId) и признак isNewRun. Если пропустить этот шаг, прогонятся все тесты проекта.
Полное описание контракта, формат ответа и примеры для .gitlab-ci.yml — Тест-план по API.
Переменная DOQA_SPACE_ID
Заводить DOQA_SPACE_ID в настройках CI вручную нужно только для пайплайнов, которые стартуют сами — по коммиту или расписанию. При запуске из DoQA значение приходит в пайплайн автоматически и перекрывает заданное в настройках CI.