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

Yaml Gitlab Ci:如何在作业之间共享数据,yaml,gitlab,gitlab-ci,gitlab-ci-runner,Yaml,Gitlab,Gitlab Ci,Gitlab Ci Runner,我想在两个作业之间共享一个文件,如果有更改的文件,则对其进行修改。python脚本将cache.json文件与更改进行比较,并有时修改cahce文件 .gitlab ci.yaml: image: ubuntu stages: - test cache: key: one-cache paths: - cache.json job1: stage: test script: # - touch cache.json - cat cache.json

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

.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
文件不存在。我收到错误消息:
cat:cache.json:没有这样的文件或目录
。我也插入了一次touch命令,但是在没有touch命令的情况下,这不会改变下一次运行的任何内容


我是否有什么地方出错,或者我不理解gitlab的
缓存是错误的。

我认为您需要的是工件,而不是缓存

发件人:

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

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