如何在gitlab存储库中集成cmake以实现持续集成(CI)

时间:2017-11-15 16:31:22

标签: c++ docker cmake gitlab gitlab-ci

我能够运行C ++程序并构建&在gcc的Docker Image的帮助下使用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

1 个答案:

答案 0 :(得分:4)

我认为您需要添加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更新

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克隆你的repo并运行.gitlab-ci.yml中的所有步骤,你可以很快地在本地看到输出和调试。