Gitlab CI:由于缓存密钥为空,跳过缓存归档。

4

我无法在gitlab ci脚本中为.NET Core和Angular项目缓存node_modules。

我看到了这个提示信息:Skipping cache archiving due to empty cache key

下面是我的CI作业:

build_job:
  stage: build
  except:
    refs:
      - tags
  tags:
    - windows
  script:
    - dotnet restore .\$CI_PROJECT_NAME.sln
    - dotnet build /p:Version=${env:VERSION} -c Release --no-restore /nr:false
  artifacts:
    name: "build-$CI_COMMIT_REF_NAME"
    paths:
      - '$CI_PROJECT_NAME/'
      - '$CI_PROJECT_NAME.Tests/'
  cache:
    key: ${CI_COMMIT_REF_SLUG}-node
    paths:
      - './$CI_PROJECT_NAME/ClientApp/node_modules/'
1个回答

4
我使用Windows运行程序编译C++文件时,遇到了同样的问题。无论我在.config-ci.yml文件中设置了什么,都无法将第三方库构建缓存。后来发现我的Gitlab runner设置的config.toml文件中没有指定cache_dir。一旦我设置了这个选项,.config-ci.yml文件中简单的缓存设置就能实现预期效果。不幸的是,错误信息中并未明确说明哪个配置文件的哪个键值缺失。

我也遇到了Windows的这个问题,你的解决方案解决了我的问题。同意错误信息非常不正确。 - Josh Woodcock
1
在Windows上,您需要将cache_dir放在与builds_dir相同的驱动器上。这是因为在内部,GitLab尝试从builds_dir构造相对路径到cache_dir,即使您在cache_dir中指定了完全限定路径。 - Jojakim Stahl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接