Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Continuous integration 是否可以将GitLab构建工件缓存一天?_Continuous Integration_Gitlab - Fatal编程技术网

Continuous integration 是否可以将GitLab构建工件缓存一天?

Continuous integration 是否可以将GitLab构建工件缓存一天?,continuous-integration,gitlab,Continuous Integration,Gitlab,我最近遇到了一个GitLab管道问题,我的node_模块没有被更新为新版本的库(特别是我自己的项目内部分支,它使用git+url语法)。我怀疑,由于git+url中没有版本号,对包文件进行散列并检测是否有更改是很棘手的 我的解决方法是尝试在.gitlab-ci.yml文件的缓存项中放入$date项,这样缓存每24小时就会丢失一次。但是,没有列出包含日期的CI变量,而且似乎您无法访问yaml文件中任何地方的OS变量。有什么巧妙的方法我可以用吗 我试过: cache: key: "$(date

我最近遇到了一个GitLab管道问题,我的node_模块没有被更新为新版本的库(特别是我自己的项目内部分支,它使用git+url语法)。我怀疑,由于git+url中没有版本号,对包文件进行散列并检测是否有更改是很棘手的

我的解决方法是尝试在.gitlab-ci.yml文件的缓存项中放入$date项,这样缓存每24小时就会丢失一次。但是,没有列出包含日期的CI变量,而且似乎您无法访问yaml文件中任何地方的OS变量。有什么巧妙的方法我可以用吗

我试过:

cache:
  key: "$(date +%F)" # or see: https://gitlab.msu.edu/help/ci/variables/README.md
  paths:
    - node_modules

before_script:
  - echo Gitlab job started $(date)
这似乎不起作用-我认为它只是输出键字符串verbatum,不过请注意脚本echo命令确实起作用


有人有什么好主意吗?现在,我只是放了一个手动字符串,当我想导致缓存被破坏时,我会添加一个数字(尽管这很容易出错)

此时无法设置CI作业的缓存过期时间。如果缓存占用了太多的磁盘空间,而您使用的是Docker executor,那么您可以探索这样一种工具,通过使较旧的缓存过期,该工具可以在任何给定时间在运行程序上保留X个可用磁盘空间

这不是关于磁盘空间的问题,而是关于节点单元模块被错误缓存的问题。整洁的工具虽然-一定会记住它。可能可以使用类似的技术在时间而不是空间上清除缓存。。。我想一想。