You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Bazel与Buildfarm的跨编译测试工作流配置咨询

Bazel + Buildfarm 跨编译测试工作流补充配置方案

问题概述

  • 已实现:基于x86_64 Worker和交叉工具链,完成x86_64到arm64的C++交叉编译,Buildfarm集群包含1台服务器、1台x86_64 Worker、1台arm64 Worker(默认配置)。
  • 待解决:让交叉编译生成的arm64测试二进制在arm64 Worker上原生运行,需明确如何按构建/测试阶段通过Platform的exec_properties调度Bazel动作。

现有配置片段

platform(
    name = "linux_arm64",             
    constraint_values = [
        "@platforms//os:linux",
        "@platforms//cpu:arm64",
    ],
)

toolchain(
    name = "arm64_linux_toolchain",
    …
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    target_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:arm64",
    ],
)

所需额外配置步骤

1. 标记Arm64 Worker的执行属性

修改Arm64 Worker的配置文件(如worker.config),添加专属执行属性,让Buildfarm能识别其架构:

worker:
  properties:
    cpu_arch: "arm64"
    os_family: "linux"

(可选:给x86_64 Worker也添加cpu_arch: "x86_64"的标记,方便后续更精准的调度)

2. 扩展Platform定义,添加执行属性匹配规则

新建或修改现有Platform,将其与Arm64 Worker的属性绑定,确保测试动作能匹配到对应Worker:

platform(
    name = "linux_arm64_test_exec",
    constraint_values = [
        "@platforms//os:linux",
        "@platforms//cpu:arm64",
    ],
    exec_properties = {
        "cpu_arch": "arm64",
    },
)

3. 指定测试目标的执行平台

有两种配置方式可选:

全局配置(所有测试生效)

在项目根目录的.bazelrc中添加规则,强制所有测试动作使用Arm64执行平台:

test --test_execution_platform=//:linux_arm64_test_exec

局部目标配置(仅指定测试生效)

在cc_test规则中直接指定执行平台,适合需要单独配置的测试目标:

cc_test(
    name = "my_arm64_test",
    srcs = ["test.cpp"],
    # 指定测试动作的执行平台
    execution_platform = "//:linux_arm64_test_exec",
    # 也可直接用约束替代:exec_compatible_with = ["@platforms//os:linux", "@platforms//cpu:arm64"]
)

4. 确认Buildfarm服务器的匹配配置

检查服务器配置文件(如server.config),确保允许通过exec_properties进行Worker匹配:

worker_match_settings:
  allow_exec_properties: true

(默认配置通常已开启此选项,若未开启需手动添加)

5. 验证调度结果

运行测试时添加--verbose_failures或--subcommands参数,查看测试动作是否被调度到Arm64 Worker:

bazel test //:my_arm64_test --remote_executor=grpc://<buildfarm-server-ip>:8980 --verbose_failures

内容的提问来源于stack exchange,提问作者Sent_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 12:43:16