如何使用“可靠”图像在本地执行C ++程序的Travis CI?

时间:2018-01-22 10:19:07

标签: c++ docker github continuous-integration travis-ci

我熟悉CI,但这是我第一次与Travis CI(和码头工)打交道。我有一个github项目,我想在本地运行.travis.yml。我们以this project为例。

查看this questionthis article,我发现使用docker可以在本地执行,但它依赖于编程语言。我安装了docker,但是我遇到了麻烦picking the docker image,因为没有“C ++图像”或“Trusty图像”或者我看到的任何与手头项目相近的东西。

我应该选择什么图像?我是从错误的角度看这个,因为C ++有点像系统组件,不像那些带脚本语言的图像(Python,Ruby等)?请指教。

3 个答案:

答案 0 :(得分:2)

答案 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