我最近遇到了一个GitLab管道问题,我的node_modules没有用更新版本的库更新(特别是我自己的项目内部分支,它使用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命令。
有人有任何想法吗?现在,我只是放一个手动字符串,当我想要使缓存被烧掉时会添加一个数字(虽然它有点容易出错)
答案 0 :(得分:0)
此时无法为CI作业设置缓存过期时间。如果缓存使用了太多的磁盘空间并且您正在使用Docker执行程序,那么您可以探索https://gitlab.com/gitlab-org/gitlab-runner-docker-cleanup之类的工具,它将在任何给定时间通过到期在运行器上保留X磁盘空间量旧缓存。