c++ - 如何将 cmake 集成到 gitlab 存储库中以进行持续集成(CI)

标签 c++ docker cmake gitlab gitlab-ci

在 gcc 的 Docker Image 的帮助下,我能够运行 C++ 程序并使用 GitLab CI 单元构建和测试它。但现在我想使用 cmake 而不是 g++ 在 docker 中编译程序。如何更改“.gitlab-ci.yml”文件以支持 cmake。

当前文件:.gitlab-ci.yml

image: gcc
before_script:
   - apt-get install --yes cmake libmatio-dev libblas-dev libsqlite3-dev libcurl4-openssl-dev
   - apt-get install --yes libarchive-dev liblzma-dev

build:
  script:
    - ./runner.sh
    - ./bin/hello

./runner.sh

cmake -H. -Bbuild
cmake --build build -- -j3

最佳答案

我认为您需要添加 apt-get update 才能安装 cmake。参见 this

image: gcc
before_script:
 - apt-get update --yes
 - apt-get install --yes cmake

build:
  script:
    - ./runner.sh
    - ./bin/hello

通常,您可以通过跳转到 docker 镜像进行调试来解决问题(在您的情况下,该镜像是基于 debian 的 gcc:latest):

sudo docker run -it --rm gcc

如果您在 gcc 容器中运行了原始的 apt-get install 命令,您会看到以下错误消息,然后您可以通过 google 找出需要 apt-get update

sudo docker run -it --rm gcc apt-get install --yes cmake
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package cmake is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'cmake' has no installation candidate

正如这篇博文提到的,您可以通过 downloading the gitlab-runner executable 在本地进行测试。 :

gitlab-runner exec docker build

在本地运行 gitlab-runner 将使 gitlab 克隆您的存储库并运行 .gitlab-ci.yml 中的所有步骤,您可以相当快地在本地看到输出和调试。

关于c++ - 如何将 cmake 集成到 gitlab 存储库中以进行持续集成(CI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47312630/

相关文章:

c++ - 防止 clang tidy 报告关于 Boost 测试 header 的警告

c++ - wxWidget 按下了哪个按钮(wxButton)?

qt - CMake CPack debian 软件包

cmake - 使用cmake为gdb创建符号表

c++ - 使用CMake时出现"Could not find boost libraries"错误

c++ - 为什么要使用像 `&myArray[i]` 这样的数组元素的地址?二维数组

c++ - 如何从另一个 Qt 程序执行分离的 C++ 可执行文件?

docker - Docker-compose构建问题

docker - 如何退出以保持Docker容器运行(在jenkins中)

docker - 无法访问Ubuntu的Docker容器中的摄像头