是否可以仅在一天内缓存GitLab构建工件?

时间:2017-05-16 21:51:13

标签: continuous-integration gitlab

我最近遇到了一个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命令。

有人有任何想法吗?现在,我只是放一个手动字符串,当我想要使缓存被烧掉时会添加一个数字(虽然它有点容易出错)

1 个答案:

答案 0 :(得分:0)

此时无法为CI作业设置缓存过期时间。如果缓存使用了太多的磁盘空间并且您正在使用Docker执行程序,那么您可以探索https://gitlab.com/gitlab-org/gitlab-runner-docker-cleanup之类的工具,它将在任何给定时间通过到期在运行器上保留X磁盘空间量旧缓存。