Is it possible to cache GitLab build artifacts only for a day?

Viewed 1009

I recently encountered a GitLab pipeline issue where my node_modules weren't being updated with newer versions of a library (particularly my own internal fork of a project, which uses the git+url syntax). I suspect, as the git+url doesn't have a version number in it, its tricky to hash the package file and detect there is a change...

My workaround was to try and put a $date entry in the cache entry of my .gitlab-ci.yml file, so that the cache is lost every 24 hours. However there is no CI variable listed which contains a date, and it doesn't seem that you can access OS variables everywhere in the yaml file. Is there a neat trick I can use?

I tried:

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)

This doesn't seem to work - I think it just outputs the key string verbatum, although notice that the script echo command does.

Anyone have any neat ideas? For now, I am just putting a manual string, and will add a digit when I want to cause the cache to be blown (although it is a bit error prone)

1 Answers
Related