作者:米斯特RAO | 来源:互联网 | 2022-12-30 18:48
管道完成后,是否可以使用Gitlab CI使管道缓存无效或清除?
我的.gitlab-ci.yml
文件具有以下全局缓存定义
cache:
key: "%CI_PIPELINE_ID%"
paths:
- './msvc/Project1`/bin/Debug'
- './msvc/Project2`/bin/Debug'
- './msvc/Project3`/bin/Debug'
该cache-key
值指定每个管道应维护自己的缓存,这可以正常工作,但是在管道完成后,缓存文件仍然存在。随着数百个管道的运行,大小开始增加,手动删除我们计算机上的缓存文件夹并不是一个很好的解决方案。
我尝试在管道的末尾添加清理作业
cleanup:
stage: cleanup
script:
- rm -rf './msvc/Project1/bin'
- rm -rf './msvc/Project2/bin'
- rm -rf './msvc/Project3/bin'
when: always
会删除本地文件,但不会从缓存中删除它们。
我在这里想念什么吗?
当前正在运行的Gitlab-EE 10.3.3
1> Dan..:
这不是一个完美的解决方案,但是我们最终在.gitlab-ci.yaml
文件末尾创建了一个清理作业,该清理作业从文件系统中删除了缓存目录。
这样,每个管道都会获得自己的唯一缓存,而不会随着时间的推移而使文件系统混乱。
cleanup_job:
stage: cleanup
script:
- echo "Cleaning up"
- rm -rf "%CACHE_PATH%/%CI_PIPELINE_ID%"
when: always
哪里
CACHE_PATH: "C:/gitlab-runner/cache/group/project/repo/"