如何在 GitLab CI/CD 中使用 Bencher
根据您的使用情况,您可以为以下项目在 GitLab CI/CD 中设置持续性能基准测试:
🐰 在继续之前,请确保您已创建了 API 令牌 并将其设置为名为
BENCHER_API_TOKEN
的掩码变量! 导航至您的仓库 -> 设置 -> CI/CD -> 变量 -> 展开 -> 添加变量
。 变量键应为BENCHER_API_TOKEN
,变量值应为您的 API 令牌。 勾选保护变量
和掩码变量
复选框。
目标分支
Statistical Continuous Benchmarking 的基石是为您的目标分支拥有一个历史基线。 然后,可以使用此历史基线来检测合并请求中的性能退化。
- 创建一个GitLab CI/CD文件。
(例:
.gitlab-ci.yml
) - 创建一个GitLab CI/CD作业。
(例:
benchmark_target_branch
) - 运行
if
管道是由push
到main
分支触发的。 参见 GitLab CI/CDrules
文档 和 GitLab CI/CD预定义变量文档 以获取完整概述。 (例:rules: - if: ...
) - 设置作业将在其中运行的
image
。 参见 GitLab CI/CDimage
文档 以获取完整概述。 (例:image: debian:bullseye
) - 使用便捷脚本安装Bencher CLI。
(例:
before_script: ...
) - 使用
bencher run
CLI子命令 运行您的main
分支基准测试。 参见 thebencher run
CLI子命令 以获取完整概述。 (例:bencher run
) - 将
--project
选项设置为项目slug。 参见 the--project
文档 了解更多详情。 (例:--project save-walter-white-1234abcd
) - 将
--token
选项设置为屏蔽的BENCHER_API_TOKEN
环境变量。 参见 the--token
文档 了解更多详情。 (例:--token "$BENCHER_API_TOKEN"
) - 将
--branch
选项设置为分支名称。 参见 分支选择 以获取完整概述。 (例:--branch main
) - 将
--testbed
选项设置为测试床名称。 这应该与在image
中选择的机器匹配。 参见 the--testbed
文档 了解更多详情。 (例:--testbed debian:bullseye
) - 将
--adapter
选项设置为所需的基准测试适配器。 参见 基准测试适配器 以获取完整概述。 (例:--adapter json
) - 设置
--err
标志以在生成警报时使命令失败。 参见 阈值和警报 以获取完整概述。 (例:--err
) - 指定基准测试命令参数。
参见 基准测试命令 以获取完整概述。
(例:
bencher mock
)
合并请求
为了在合并请求中捕捉性能回归,你需要在MRs上运行基准测试。 以下示例仅适用于相同存储库中的分支。
- 创建或更新一个GitLab CI/CD文件。
(例如:
.gitlab-ci.yml
) - 创建一个GitLab CI/CD任务。
(例如:
benchmark_mr_branch
) - 如果管道由
merge_request_event
触发,则运行if
。 查看GitLab CI/CDrules
文档 和GitLab CI/CD 预定义变量文档以获得完整概述。 (例如:rules: - if: ...
) - 设置任务将在其中运行的
image
。 查看GitLab CI/CDimage
文档 以获取完整概述。 (例如:image: debian:bullseye
) - 使用便捷脚本安装Bencher CLI。
(例如:
before_script: ...
) - 使用
bencher run
CLI子命令 运行你的合并请求分支的基准测试。 查看bencher run
CLI子命令以获得完整概述。 (例如:bencher run
) - 将
--project
选项设置为项目slug。 查看--project
文档了解更多详情。 (例如:--project save-walter-white-1234abcd
) - 将
--token
选项设置为掩码的BENCHER_API_TOKEN
环境变量。 查看--token
文档了解更多详情。 (例如:--token "$BENCHER_API_TOKEN"
) - 使用GitLab CI/CD 预定义变量将
--branch
选项设置为MR分支名称。 查看分支选择以获取完整概述。 (例如:--branch "$CI_COMMIT_REF_NAME"
) - 使用GitLab CI/CD 预定义变量将
--branch-start-point
选项设置为MR目标分支起点。 查看分支选择以获取完整概述。 (例如:--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
) - 使用GitLab CI/CD 预定义变量将
--branch-start-point-hash
选项设置为MR目标分支起点哈希。 查看分支选择以获得完整概述。 (例如:--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
) - 将
--testbed
选项设置为Testbed名称。 这应该与在image
中选择的机器匹配。 查看--tested
文档了解更多详情。 (例如:--testbed debian:bullseye
) - 将
--adapter
选项设置为所需的基准测试适配器。 查看基准测试适配器以获得完整概述。 (例如:--adapter json
) - 如果生成报警,则设置
--err
标志以使命令失败。 查看阈值与报警以获得完整概述。 (例如:--err
) - 指定基准测试命令参数。
查看基准测试命令以获得完整概述。
(例如:
bencher mock
)
🐰 恭喜!您已学会如何在 GitLab CI/CD 中使用 Bencher!🎉
继续前进:基准测试概览 ➡
🤖 该文档由 OpenAI GPT-4 自动生成。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.