C++ 如何执行C+的Travis CI+;在本地编程时使用;“可靠的”;形象?

C++ 如何执行C+的Travis CI+;在本地编程时使用;“可靠的”;形象?,c++,docker,github,continuous-integration,travis-ci,C++,Docker,Github,Continuous Integration,Travis Ci,我熟悉CI,但这是我第一次与Travis CI(和docker)打交道。我有一个github项目,我想在本地运行.travis.yml。让我们举个例子 查看和,我发现使用docker可以在本地执行,但这取决于编程语言。我安装了docker,但我遇到了麻烦,因为没有“C++映像”或“可靠映像”或我在手头的项目附近看到的任何东西 我应该选择什么形象?我是不是从错误的角度来看这个问题,因为C++与系统语言组件有点不同,不像那些脚本语言(Python,Ruby等)。请告知。在选择图像时,我仔细查看,发现

我熟悉CI,但这是我第一次与Travis CI(和docker)打交道。我有一个github项目,我想在本地运行
.travis.yml
。让我们举个例子

查看和,我发现使用docker可以在本地执行,但这取决于编程语言。我安装了docker,但我遇到了麻烦,因为没有“C++映像”或“可靠映像”或我在手头的项目附近看到的任何东西


我应该选择什么形象?我是不是从错误的角度来看这个问题,因为C++与系统语言组件有点不同,不像那些脚本语言(Python,Ruby等)。请告知。

在选择图像时,我仔细查看,发现
te main
是定期构建的(从2018/01/23开始)。我会选择
te main
,因为这可能是最接近c/c++的。在那张图片上运行一个lsb_发行版-a,我得到

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:    14.04
Codename:   trusty

确认图像基于可信的
trusty

中解释了如何使用可信的图像。

我是问题的提问者,以下是我从这次旅行中学到的东西

不要浪费时间让travis CI在当地工作。如果travis build(将travis脚本转换为bash的库)能够正常工作,您将非常幸运。但这不一定。对我来说,我突然发现了ruby库错误,无法调试它(也许这是我对ruby的无知,但这取决于你想在调试travis build上投入多少,如果可以的话,因为我的错误似乎不是我可以修复的)

底线是:只需在github上创建一个新分支,并将您的工作推到它上测试您的更改,然后删除该分支即可

我用来封装测试过程并能够在本地进行测试的一种方法是,我不只是使用travis进行测试,而是在travis脚本中使用另一组Python脚本(或您首选的脚本语言)。这样,您可以使用这些脚本手动测试复杂的逻辑,然后在travis脚本中执行以下操作:

install:
    - python tests/install_ubuntu_packages.py
script:
    - python tests/test_daemon_compile.py
    - python tests/test_gui_compile.py

这些脚本可以在docker中单独运行,超级干净,在一个新的环境中运行,它们可以包含需要在本地测试的复杂逻辑。但是travis脚本本身非常简单,不值得在本地进行测试。

“te main”用于企业安装,可能适合也可能不适合您的使用。您是否考虑过使用远程shell?基本上,让travis运行一个程序,该程序连接到您也连接到的服务器,以便它将您键入的命令转发到travis shell。一个小时后,你失去了所有的进步,但这可能足够了,你可以重新开始。但可能违反了规定,不确定。@nwp从安全角度看,这有点吓人。如果我理解正确,您希望travis脚本通过ssh访问我的服务器?不。我希望您通过一个程序从服务器转发帮助来访问travis。只有您向服务器发送的命令才能发送给travis。甚至不需要回复,因为您可以在travis网站上看到输出。从技术上讲,您可以在travis VM中使用它来做坏事,但是任何人都可以这样做,所以不会损失安全性。@nwp我明白了。我会考虑下一次(我现在的竞选已经结束)。谢谢你的建议。:-)