社区支持的语言
有很多编程语言,Travis CI 希望尽可能多地支持它们。
但是,Travis CI 团队通常缺乏使之成为现实的专业知识,这就是社区支持发挥作用的地方。
“社区支持”是什么意思? #
社区支持语言的支持是指由语言各自社区中自认的专家提供的编程语言支持。
如何添加新的社区支持语言? #
- 召集 3 名或 3 名以上志愿者来支持新语言。
- 在 travis-build 中创建拉取请求,如果必要,请在 travis-web 中创建拉取请求。
- 测试你的更改.
- 与 Travis CI 团队合作,使 PR 准备好投入生产。
- 为涉及该语言的问题提供持续的支持。
3 人是一个支持语言的最低人数。这允许在支持团队成员无法使用时提供冗余支持。
技术细节 #
需要注意的是,语言是在构建时配置的,因此每次作业运行时都会下载组件。为了节省构建时间,请将语言资源使用量限制到最低限度。
添加新语言 #
要添加对新语言的支持,请编辑 travis-build 并创建一个新类,继承自 Travis::Build::Script
,该类为你的语言的构建阶段实现合理的默认值。
至少,实现以下阶段
configure
→ setup
→ announce
→ install
→ script
还有其他可以针对特定语言自定义的阶段;如果你认为这样做是合适的,Travis CI 团队将与你合作来识别和实现自定义。
configure
阶段在容器构建中禁用sudo
之前运行,因此如果你需要使用sudo
来设置你的语言环境(例如,安装 Ubuntu 软件包),你应该在configure
阶段执行此操作。
如果你想支持基于各种语言版本(例如,Ruby 2.2、2.1 等)的构建矩阵扩展,并且希望添加一种方便的方法来限制基于语言版本的部署,请将你的语言添加到 Travis::Build::Addons::Deploy::Script::VERSIONED_RUNTIMES
。
添加矩阵支持 #
如果语言提供构建矩阵扩展,请通过编辑 travis-web 使此信息对最终用户可见。
为此,你需要告诉 travis-web
从作业数据中获取值并显示它。克隆 travis-web
存储库,将你的语言添加到 app/utils/keys-map.coffee
文件中,并为此更改提交拉取请求。
如果你想支持各种语言版本(例如,Ruby 2.2、2.1 等)的构建矩阵扩展,请与 Travis CI 团队协调以了解确切的要求。
测试 travis-build
更改 #
测试发生在我们的暂存环境中,这是一个共享资源。测试建议的更改可能需要你在你和 Travis CI 团队之间进行一些协调。
在本地测试你的代码 #
或者,你可以使用 travis-build
作为附加组件 到 CLI 实用程序。这允许你将正在处理的 travis-build
代码编译成 Bash 脚本,然后你可以检查其语法是否正确(bash -n
)并执行(我们建议在虚拟机上执行此操作)以帮助你的开发。
社区支持语言列表 #
按字母顺序排列,它们是