Gitlab-Ci:我如何在作业之间共享数据

时间:2018-05-15 20:45:43

标签: yaml gitlab gitlab-ci gitlab-ci-runner

我想在两个作业之间共享文件,如果有更改的文件则修改它。 python脚本将image文件与更改进行比较,并有时修改cahce文件。

cache.json

.gitlab-ci.yaml

问题是image: ubuntu stages: - test cache: key: one-cache paths: - cache.json job1: stage: test script: # - touch cache.json - cat cache.json - python3 modify_json_file.py - cat cache.json 文件在下次作业运行时不存在。我收到错误消息:cache.json。我也确实插入了一次touch命令,但是如果没有touch命令,这不会改变下一次运行的任何内容。

我做错了什么或者我不理解gitlab上的cat: cache.json: No such file or directory错误。

1 个答案:

答案 0 :(得分:6)

我认为你需要工件,而不是缓存。

来自cache vs artifact

  

缓存 - 用于项目依赖项的临时存储。对于保存中间构建结果(如jar或apk文件)没有用。缓存旨在用于加速对给定作业的后续运行的调用,通过保留依赖项(例如,npm包,Go供应商包等),因此不必从公共中重新获取它们互联网。虽然可以滥用缓存来在阶段之间传递中间构建结果,但可能存在工件更适合的情况。

     

工件 - 用于将在各阶段之间传递的阶段结果。工件被设计为上传构建的一些编译/生成位,并且可以由任意数量的并发运行器获取它们。它们保证可用,并且可以在作业之间传递数据。它们也可以从UI下载。

相关问题