GitLab CI

Pipeline создаётся для:

  • merge request pipelines;

  • manual web pipelines;

  • schedules;

  • pipelines, где хотя бы одна переменная выбора непустая.

В runner checkout обычно нет .env: секреты и overrides должны приходить через GitLab CI/CD variables или через файлы, которые runner создаёт сам.

Prepare jobs:

  • flake8 ставит зависимости и запускает flake8;

  • collect_tests собирает tests/api с отключёнными stand reset и registry setup.

API jobs ждут prepare jobs и используют resource_group: archives-qa-shared-stand, поэтому GitLab сериализует их для общего стенда.

Переменные выбора:

Переменная

Job

Pytest поведение

пустые переменные выбора в MR/web

run_smoke

tests/api -m smoke

SMOKE

run_smoke

tests/api -m smoke

REGRESSION или RUN_ALL

run_regression

все tests/api

schedule без переменных выбора

run_regression

все tests/api для ночных запусков

TESTS_TAG

run_tag_tests

tests/api -m "$TESTS_TAG"

TEST_ENTITY

run_object_tests

tests/api -k "$TEST_ENTITY"

TEST_PATH

run_path_tests

точный файл, класс, тест или nodeid из TEST_PATH

RUN_ALL_SKIPPED

run_all_skipped

все skipped API tests через --run_all_skipped

GitLab rules:if считает любую непустую переменную выбора истинной. Значения false, 0 или no всё равно запускают соответствующий job. Чтобы переменная выбора не сработала, удалите её или оставьте пустой.