caching - Gitlab CI - 如果缓存存在,如何跳过作业
问题描述
我的 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
。
如何更改此行为,以便如果缓存存在,则跳过此作业?
解决方案
尝试退出?
install:
stage: install
cache:
key:
files:
- package-lock.json
prefix: $CI_PROJECT_NAME
paths:
- node_modules/
script:
- |
if [[ -d node_modules ]]; then
exit 10
fi
- npm ci --cache .npm --prefer-offline
allow_failure:
exit_codes: 10
推荐阅读
- c# - OnPropertyChanged 和实例属性
- c# - 从位于不同文件夹中的 MasterPage 调用函数
- javascript - React - 即使屏幕上打印的消息发生更改,类组件中的状态也不会更新
- macos - 在 Mac 上删除 usr/local/octave
- java - 在单个地图中执行多个任务是一种好习惯吗
- angular - 取消订阅 Observable 后如何重新订阅
- java - 仅编辑一个时编辑了所有数组元素
- java - 在 localhost 的练习包含过时的方法,原因:虚拟机无法删除所有运行旧代码的堆栈帧
- c# - 数据库搭建后 Guid 不是外键。ASP.NET 核心标识 3.1
- java - 无法在 Windows 10 中安装 JDK 8