。gitlab-ci.yml缓存/工件配置,用于根据条件为以后的管道/阶段保存较大的二进制文件

问题描述 投票:0回答:1

背景

我正在为[c0]文件夹中具有c ++库依赖项的python项目设置ci / cd。构建阶段运行foo/bar/c_code_src并编译c ++库二进制文件并将其输出到python setup.py install

然后我运行一个python unittest,如果foo/bar/bin/不存在,它将失败。

下面的脚本是我第一次尝试使用foo/bar/bin

.gitlab-ci.yml

这能够正常工作,因为编译stages: - build - test build: stage: build script: - python setup.py install artifacts: paths: - foo/bar/c_code_src test: stage: test dependencies: - build script: - python -m unittest foo/bar/test_bar.py 需要花费较长的时间,并且生成的bin相当大,并且c_code_src中的代码变化不大,所以我希望能够缓存c_code_src文件夹用于将来的管道,并且仅在bin中的代码更改时才运行构建阶段。阅读c_code_src之后,似乎我想使用documentation代替cache(或与之并列)。

这是我尝试修改artifacts

.gitlab-ci.yml

我不确定如何设置仅在stages: - build - test build: stage: build script: - python setup.py install cache: - key: bar_cache paths: - foo/bar/bin test_bar: stage: test dependencies: - build cache: key: bar_cache paths: - foo/bar/bin policy: pull script: - python -m unittest foo/bar/test_bar.py 更改时才运行构建的条件。

总之我想要:

  • 仅在c_code_src不存在或bin有更改的情况下才运行构建>
  • 缓存c_code_src,即使构建阶段未运行,测试阶段也始终具有最新的bin

背景我正在为foo / bar / c_code_src文件夹中具有c ++库依赖项的python项目设置ci / cd。构建阶段运行python setup.py install并编译c ++ ...

python gitlab gitlab-ci devops
1个回答
0
投票

[不确定您是否会遇到bin不存在的情况,因为通常情况下,作业条件将查看在提交中所做的更改,而无需遍历整个存储库代码。

© www.soinside.com 2019 - 2024. All rights reserved.