热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何将cmake集成到gitlab存储库中以进行持续集成(CI)》经验,为你挑选了1个好方法。

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

小智.. 5

我认为您需要添加apt-get更新才能安装cmake。看到这个

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

如本博文所述,您可以通过下载gitlab-runner可执行文件在本地进行测试:

gitlab-runner exec docker build

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



1> 小智..:

我认为您需要添加apt-get更新才能安装cmake。看到这个

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

如本博文所述,您可以通过下载gitlab-runner可执行文件在本地进行测试:

gitlab-runner exec docker build

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


推荐阅读
  • linux clickhouse安装在指定目录_Centos8服务器指定目录安装配置Nginx
    1.安装前准备(1)检查是否安装过nginx(如果没有安装过可以无视)find-namenginx搜索nginx文件及其文件夹rm-rf【nginx配置地址文件及其文件夹】手动删除 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 文本处理与软件管理
    1、自建yum仓库,分别为网络源和本地源本地源:       网络源:[root@openvpn~]#catetcyum.repos.dCentOS-Base.repo#CentO ... [详细]
  • 删除iPad或iPhone目录privatevarkeychainskeychain-2.db文件,重启iPad或iPhone。1.如何卸载机内自带软件? ... [详细]
  • Centos 6/7安装Python 3.5及SSL编译安装,实现HTTPS识别
    Python3中无法导入ssl模块的解决办法如果你发现在python3脚本运行过程中发现涉及到ssl模块都无法运行的情况下。那么需要进行如下步骤第一步:yuminst ... [详细]
author-avatar
糖在嘴里甜在心离_636
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有