c++ - 如何使用 "trusty"图像在本地执行 C++ 程序的 Travis CI?

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

我熟悉 CI,但这是我第一次接触 Travis CI(和 docker)。我有一个 github 项目,我想在本地运行 .travis.yml。我们以this project为例举个例子。

查看this questionthis article ,我看到使用 docker 可以在本地执行,但这取决于编程语言。我安装了 docker,但遇到问题 picking the docker image ,因为没有“C++ 图像”或“可信图像”或我在手头项目附近看到的任何东西。

我应该选择什么图片?我是不是从错误的角度看待这个问题,因为 C++ 在某种程度上是一个系统组件,不像那些使用脚本语言(Python、Ruby 等)的图像?请指教。

最佳答案

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

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

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

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

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

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

关于c++ - 如何使用 "trusty"图像在本地执行 C++ 程序的 Travis CI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48379244/

相关文章:

C++:链接时gcc找不到静态成员

php - 如何在 Ubuntu 16.04 上设置 Docker + PhpStorm + xdebug

java - 使用反向代理后面的 keycloak 进行身份验证失败

c++ - 我如何(动态地)链接到 Windows 上的 math.h 函数?

c++ - 将 C++ Win32 控制台项目类集成到 Visual Studio 2008 中的 Visual C++(Windows 窗体应用程序)项目中

azure - 容器的 Web 应用程序 - Http 503

git - 有什么方法可以在将功能分支重新设置为另一个分支后安全地删除它?

git - 我怎样才能忽略大文件并推送到 git repo

eclipse - EGIT 无法连接到任何存储库 - 缺少未知

c++ - 有什么好的程序可以为 osx 制作 C++ GUI