在 Travis 服务器上使用 Buck 构建

Building with Buck on Travis servers

我正在尝试在 Travis CI 服务器上(通过 GitHub)使用 buck test C++ 目标通过 Buck 构建测试,但我有两件事想不通。

  1. 我必须在 Travis 服务器上安装 Buck。 如何使用 OS X 服务器而不是 Ubuntu X 服务器? 我在 Travis 文档中读到它也提供 OS X 服务器。这样我就可以继续做 brew tap facebook/fb && brew install buck 我就完成了。
  2. Buck 要求我在存储库的 .buckconfig 文件中指定要使用的编译器。然而,这只接受编译器使用的绝对路径。 Travis CI 配置似乎只提供一个包含编译器路径的环境变量。然而,环境变量不能在 .buckconfig 中使用。 有什么方法可以安装编译器(完全支持 C++14 的编译器)并获取它在 Travis 服务器上的安装路径吗?

我突出显示了问题,以便那些对我提到的所有事情没有经验的人(Buck 和 Travis CI)更容易回答问题。

How can I use OS X servers instead of Ubuntu ones?

这应该是 os directive 的用途。

Value has to be linux (default) or osx; or one of the known aliases:
ubuntu for linux, mac for osx or macos for osx

(讽刺的是,buck itself has its own tavis.yml。)

Environment variables however cannot be used in the .buckconfig.

您可以:

  • 考虑开始你的 Travis CI 作业,对 .buckconfig 执行 sed 以用环境变量中的实际路径替换固定路径。
  • 或将所有 cxx_...() 规则替换为 genrule(),您可以在其中指定所需的命令(并受益于某些环境变量替换)