如何在 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
)
合并请求
为了在合并请求中捕捉性能回归,您需要在合并请求上运行基准测试。 下面的示例应仅用于同一存储库内的分支。
- 创建或更新一个 GitLab CI/CD 文件。
(例如:
.gitlab-ci.yml
) - 创建一个 GitLab CI/CD 任务。
(例如:
benchmark_mr_branch
) - 当流水线由
merge_request_event
触发时运行。 请参阅 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
选项为合并请求分支名称。 请参阅分支选择 了解全面概述。 (例如:--branch "$CI_COMMIT_REF_NAME"
) - 使用GitLab CI/CD 预定义变量 设置
--branch-start-point
选项为合并请求目标分支的起点。 请参阅分支选择 了解全面概述。 (例如:--branch-start-point "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
) - 使用GitLab CI/CD 预定义变量 设置
--branch-start-point-hash
选项为合并请求目标分支的起点哈希值。 请参阅分支选择 了解全面概述。 (例如:--branch-start-point-hash "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
) - 设置
--branch-reset
标志以始终将分支重置为起点。 这将防止基准数据漂移。 请参阅分支选择 了解全面概述。 (例如:--branch-reset
) - 设置
--testbed
选项为测试床名称。 这可能应该与在image
中选择的机器匹配。 请参阅--tested
文档 了解更多详情。 (例如:--testbed debian:bullseye
) - 设置
--adapter
选项为所需的基准测试适配器。 请参阅基准测试适配器 了解全面概述。 (例如:--adapter json
) - 设置
--err
标志以在生成警报时使命令失败。 请参阅阈值与警报 了解全面概述。 (例如:--err
) - 指定基准测试命令参数。
请参阅基准测试命令 了解全面概述。
(例如:
bencher mock
)
🐰 恭喜!您已学会如何在 GitLab CI/CD 中使用 Bencher!🎉
继续前进:基准测试概览 ➡
🤖 该文档由 OpenAI GPT-4 自动生成。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.