Как использовать Bencher в GitLab CI/CD
В зависимости от вашего сценария использования, вы можете настроить Непрерывное бенчмаркинг в GitLab CI/CD для:
🐰 Убедитесь, что вы создали токен API и установили его как скрытую переменную с именем
BENCHER_API_TOKEN
перед тем как продолжить! Перейдите кВаш репозиторий -> Настройки -> CI/CD -> Переменные -> Развернуть -> Добавить переменную
. Ключ переменной должен бытьBENCHER_API_TOKEN
, а значение переменной - ваш токен API. Отметьте оба флажкаЗащитить переменную
иСкрыть переменную
.
Целевая ветвь
Угловым камнем Статистического Непрерывного Бенчмаркинга является наличие исторической базы для вашей целевой ветви. Затем эту историческую базу можно использовать для выявления регрессий производительности в запросах на слияние.
- Создайте файл GitLab CI/CD.
(например,
.gitlab-ci.yml
) - Создайте задание GitLab CI/CD.
(например,
benchmark_target_branch
) - Запустите
if
если пайплайн был вызванpush
в ветвьmain
. Смотрите документацию поправилам
GitLab CI/CD и документацию по предопределенным переменным GitLab CI/CD для полного обзора. (например,rules: - if: ...
) - Установите
image
в котором будет выполняться задание. Смотрите документацию поimage
GitLab CI/CD для полного обзора. (например,image: debian:bullseye
) - Установите CLI Bencher с помощью удобного скрипта.
(например,
before_script: ...
) - Используйте подкоманду CLI
bencher run
для запуска бенчмарков вашей ветвиmain
. Смотрите подкоманду CLIbencher run
для полного обзора. (например,bencher run
) - Установите опцию
--project
в слаг проекта. Смотрите документацию по--project
для получения дополнительной информации. (например,--project save-walter-white-1234abcd
) - Установите опцию
--token
в маскированную переменную средыBENCHER_API_TOKEN
. Смотрите документацию по--token
для получения дополнительной информации. (например,--token "$BENCHER_API_TOKEN"
) - Установите опцию
--branch
в имя ветви. Смотрите выбор ветви для полного обзора. (например,--branch main
) - Установите опцию
--testbed
в имя тестового стенда. Это должно совпадать с машиной, выбранной вimage
. Смотрите документацию по--testbed
для получения дополнительной информации. (например,--testbed debian:bullseye
) - Установите опцию
--adapter
в нужный адаптер для замеров производительности. Смотрите адаптеры для замеров производительности для полного обзора. (например,--adapter json
) - Установите флаг
--err
для прерывания команды, если было сгенерировано оповещение. Смотрите Пороги и Оповещения для полного обзора. (например,--err
) - Укажите аргументы команды для бенчмарка.
Смотрите аргумент команды для полного обзора.
(например,
bencher mock
)
Запросы на слияние
Чтобы отслеживать регрессию производительности в запросах на слияние, вам необходимо будет запускать свои бенчмарки на MR. Ниже приведенный пример должен использоваться только для веток в том же репозитории.
- Создайте или обновите файл GitLab CI/CD.
(например:
.gitlab-ci.yml
) - Создайте задание GitLab CI/CD.
(например:
benchmark_mr_branch
) - Запустите
if
пайплайн был инициирован событиемmerge_request_event
. Смотрите документациюrules
GitLab CI/CD и документацию по предопределенным переменным GitLab CI/CD для полного обзора. (например:rules: - if: ...
) - Установите
image
, в котором будет выполняться задание. Смотрите документациюimage
GitLab CI/CD для полного обзора. (например:image: debian:bullseye
) - Установите CLI Bencher с помощью удобного скрипта.
(например:
before_script: ...
) - Используйте подкоманду CLI
bencher run
для запуска ваших бенчмарков ветки запроса на слияние. Смотрите подкоманду CLIbencher run
для полного обзора. (например:bencher run
) - Установите параметр
--project
для слага проекта. Смотрите документацию--project
для подробностей. (например:--project save-walter-white-1234abcd
) - Установите параметр
--token
для маскированной переменной окруженияBENCHER_API_TOKEN
. Смотрите документацию--token
для подробностей. (например:--token "$BENCHER_API_TOKEN"
) - Установите параметр
--branch
для имени ветки MR с использованием предопределенной переменной GitLab CI/CD. Смотрите выбор ветки для полного обзора. (например:--branch "$CI_COMMIT_REF_NAME"
) - Установите параметр
--branch-start-point
для точки начала целевой ветки MR с использованием предопределенной переменной GitLab CI/CD. Смотрите выбор ветки для полного обзора. (например:--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
) - Установите параметр
--branch-start-point-hash
для хеша точки начала целевой ветки MR с использованием предопределенной переменной GitLab CI/CD. Смотрите выбор ветки для полного обзора. (например:--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
) - Установите параметр
--testbed
для имени тестовой среды. Это, вероятно, должно соответствовать машине, выбранной вimage
. Смотрите документацию--tested
для подробностей. (например:--testbed debian:bullseye
) - Установите параметр
--adapter
для выбора адаптера системы тестирования производительности. Смотрите адаптеры системы тестирования производительности для полного обзора. (например:--adapter json
) - Установите флаг
--err
для провала команды, если сгенерировано предупреждение. Смотрите Пороги и предупреждения для полного обзора. (например:--err
) - Укажите аргументы команды бенчмарка.
Смотрите аргумент команды для полного обзора.
(например:
bencher mock
)
🐰 Поздравляем! Вы научились использовать Bencher в GitLab CI/CD! 🎉