caching - Gitlab CI - 如果缓存存在,如何跳过作业

标签 caching gitlab gitlab-ci yarnpkg

我有一个 setup在我的 CI 中工作,它安装所有 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

关于caching - Gitlab CI - 如果缓存存在,如何跳过作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66543992/

相关文章:

java - 图像被缓存并耗尽了我的堆空间

caching - Wildfly infinispan Web 缓存容器的用途是什么?

javascript - 将加载了 Ajax 的插件保存到缓存

git - 如何为两个 GitLab 帐户设置两个 SSH key 并使用 TortoiseGit 进行推送/pull ?

docker - 未找到 Kubernetes deployment.extensions

ios - 预取后从缓存中选取图像

yaml - npm 安装后 Gitlab 运行器停止

docker - Docker在GitLab CI运行器容器中不可用

vue.js - vuejs 历史模式与 github/gitlab 页面

git - 如何在 gitlabhq 中通过 Web 界面在线接受 merge 请求?