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

在GCC的Docker Image的帮助下,我能够运行C ++程序并使用Gi​​tLab CI单元进行构build和testing。 但现在我想在Docker中使用cmake而不是g ++来编译程序。 如何更改'.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更新以获得cmake安装。 看到这个

 image: gcc before_script: - apt-get update --yes - apt-get install --yes cmake build: script: - ./runner.sh - ./bin/hello 

一般来说,你可以通过跳入Docker镜像进行debugging(在这种情况下,图像是基于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 

正如这篇博客文章提到的那样,您可以通过下载gitlab-runner可执行文件在本地执行testing:

 gitlab-runner exec docker build 

在本地运行gitlab-runner将会有gitlab克隆你的repo并运行.gitlab-ci.yml中的所有步骤,你可以在本地看到输出和debugging。