如何使用缓存加速c/c++项目的Gitlab CI构建



我正在Gitlab CI中构建C/c++项目。其编译结果是360个.lo文件和二进制(可执行)文件。这是一个缓慢的过程,所以我想加快速度。我想到了缓存。怎么做呢?以前,我为npm、Python模块/包使用缓存。但现在是C/c++目标文件,它们有360个项目。如何做到这一点与CI Yaml文件?所有这些对象.lo文件与源文件一起位于src/目录下。

您可以这样做:

使用Ccache
  1. 使用Gitlab缓存缓存Ccache缓存文件夹
variables:
CCACHE_BASEDIR: $CI_PROJECT_DIR
CCACHE_DIR: $CI_PROJECT_DIR/ccache
before_script:
- ccache --zero-stats
script:
- build your files here
after_script:
- ccache --show-stats
cache:
- key: ccache-$CI_JOB_NAME
paths:
- $CCACHE_DIR

下面是一个示例。gitlab-ci。使用它的yml文件,以及添加功能的MR差异。

缓存无论你使用什么对象都是一样的,所以npm和python的语法是一样的。在构建.lo文件的作业中,按照文档(https://docs.gitlab.com/ee/ci/caching/)中的建议添加缓存信息。然后,对于该分支的任何其他管道(或者无论您如何设置它),依赖于.lo文件的作业将从缓存中下载它们,而不是创建它们。

最新更新