【发布时间】:2021-06-07 04:06:07
【问题描述】:
我的 CI 中有一个 setup 作业,它安装所有 npm 包并将它们存储在缓存中:
setup:
stage: pre-build
cache:
untracked: true
when: on_success
key:
files:
- repo-hash
prefix: workspace
script:
- yarn install --frozen-lockfile
目前,如果 repo-hash 在两个管道之间没有变化,则作业成功下载现有缓存,但仍运行 yarn install --frozen-lockfile。
如何改变这个行为,如果缓存存在,这个作业会被跳过?
【问题讨论】:
-
您应该缓存
.yarn目录,例如classic.yarnpkg.com/en/docs/install-ci;您仍然需要进行安装,但大多数(如果不是全部)文件已经是本地文件。 -
谢谢,其实我不介意下载这一步,主要是
yarn install这一步,我想跳过:/ -
你找到方法了吗?跳过纱线安装步骤?
-
我们最终决定不这样做。但是我认为您可以使用 gitlab-ci.yml 的
changes关键字仅在指定字段发生更改时运行作业:docs.gitlab.com/ee/ci/yaml/#ruleschanges
标签: caching gitlab gitlab-ci yarnpkg