CI(Continuous Integration持续集成):持续集成发生在每次提交代码时,在局域网内某个主机搭建持续集成环境,对每次提交的代码进行构建、测试,保证了每次提交的代码的稳定性。
CD(Continuous Delivery持续交付):在持续集成后,通过脚本自动搭建发布环境,生成可持续交付的可执行文件,缩短发布时间。

GitLab的CICD流水线概况:

  • 流水线会运行自动生成的yaml文件
  • GitLab-runner的应用,在目标机器下载并为项目注册一个runner,配置相关信息并打开runner,提交代码时会自动触发(可手动)流水线开始运行,runner拉取远程仓库代码并进行脚本相关操作,可修改runner的相关配置信息。runner是cicd的关键。

YAML文件:

  • artifacts关键字用于打包需要的工件

Ruby语法:

  • def:用于定义方法(函数)。方法是 Ruby 程序中执行特定任务的代码块,可以在程序中多次调用。def 关键字后面通常跟随方法名,然后是方法的主体,用于定义方法的操作和行为。
  • 权限问题:

在目标机器配置环境以及编译可能遇到的问题:

  • 环境变量:需要添加ruby环境变量等相关的环境变量
  • 利用runner相关命令确定正常运行
  • 确定各软件的版本,防止版本问题(差距过大)
  • 一些文件或文件夹的命名问题,防止出现特殊字符
  • 确定编译器位置、类型、版本,使用正确的命令执行编译器进行编译
  • 确定相关库文件是否丢失,是否进行编译
  • release版本相关问题

Qt的几个构建版本:

  • debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值。会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉。
  • release发布模式,编译后的可执行文件很小,不带任何调试符号信息,一般用于打包发布程序。由于经过了各种优化,会关闭所有断言,运行阶段性能最好,如果有卡顿那肯定是你的程序问题。
  • profile概述模式,编译后的可执行文件比debug小很多比release大一点,带有部分调试符号信息,在debug和release之间取一个平衡,兼顾性能和调试,性能更优但是又方便调试。
  • 使用Qt5.7版本对应三种模式编译的空白窗体程序大小:debug(1319kb)、release(24kb)、profile(90kb)