我熟悉CI,但这是我第一次与Travis CI(和码头工)打交道。我有一个github项目,我想在本地运行.travis.yml
。我们以this project为例。
查看this question和this article,我发现使用docker可以在本地执行,但它依赖于编程语言。我安装了docker,但是我遇到了麻烦picking the docker image,因为没有“C ++图像”或“Trusty图像”或者我看到的任何与手头项目相近的东西。
我应该选择什么图像?我是从错误的角度看这个,因为C ++有点像系统组件,不像那些带脚本语言的图像(Python,Ruby等)?请指教。
答案 0 :(得分:2)
https://docs.travis-ci.com/user/common-build-problems/#Troubleshooting-Locally-in-a-Docker-Image中解释了如何使用Trusty图像。
答案 1 :(得分:2)
我是问题的提问者,这是我从这次旅程中学到的东西。
不要浪费时间让travis CI在本地工作。拥有travis-build(这是将travis脚本转换为bash的库)对你来说没有任何问题,你是非常幸运的。但它并不是必须的。对我来说,我得到了红宝石库错误并无法调试它(也许这是我的红宝石无知,但这取决于你想投入多少调试travis-build,如果可以的话,因为我的错误似乎不是我能解决的问题。
底线是:只需在github上创建一个新分支并将您的工作推送到它来测试您的更改,然后删除该分支。
我过去封装测试过程并能够在本地测试它的方法是,我不仅仅使用travis来进行测试,而是使用另一组Python脚本(或者您首选的脚本语言) )在travis脚本里面。这样,您可以使用这些脚本手动测试复杂的逻辑,然后在travis脚本中执行以下操作:
install:
- python tests/install_ubuntu_packages.py
script:
- python tests/test_daemon_compile.py
- python tests/test_gui_compile.py
这些脚本可以在docker中单独运行,超级干净,在新环境中运行,并且它们可以包含需要在本地进行测试的复杂逻辑。但是travis脚本本身很简单,不值得在本地测试。
答案 2 :(得分:1)
选择图片时,我浏览了https://quay.io/travisci,发现te-main
定期建立(截至2018/01/23)。我选择te-main
,因为这可能是最接近c / c ++的。在该图片上运行lsb_release -a
,我得
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
确认图像基于trusty