Dan*_*Dan 7 gitlab gitlab-ci gitlab-ci-runner
管道完成后,是否可以使用Gitlab CI使管道缓存无效或清除?
我的.gitlab-ci.yml文件具有以下全局缓存定义
cache:
key: "%CI_PIPELINE_ID%"
paths:
- './msvc/Project1`/bin/Debug'
- './msvc/Project2`/bin/Debug'
- './msvc/Project3`/bin/Debug'
Run Code Online (Sandbox Code Playgroud)
该cache-key值指定每个管道应维护自己的缓存,这可以正常工作,但是在管道完成后,缓存文件仍然存在。随着数百个管道的运行,大小开始增加,手动删除我们计算机上的缓存文件夹并不是一个很好的解决方案。
我尝试在管道的末尾添加清理作业
cleanup:
stage: cleanup
script:
- rm -rf './msvc/Project1/bin'
- rm -rf './msvc/Project2/bin'
- rm -rf './msvc/Project3/bin'
when: always
Run Code Online (Sandbox Code Playgroud)
会删除本地文件,但不会从缓存中删除它们。
我在这里想念什么吗?
当前正在运行的Gitlab-EE 10.3.3
工件是评论中提到的解决方案。但是,有一个选项可以清除管道页面中的缓存,如下图所示。
这不是一个完美的解决方案,但是我们最终在.gitlab-ci.yaml文件末尾创建了一个清理作业,该清理作业从文件系统中删除了缓存目录。
这样,每个管道都会获得自己的唯一缓存,而不会随着时间的推移而使文件系统混乱。
cleanup_job:
stage: cleanup
script:
- echo "Cleaning up"
- rm -rf "%CACHE_PATH%/%CI_PIPELINE_ID%"
when: always
Run Code Online (Sandbox Code Playgroud)
哪里
CACHE_PATH: "C:/gitlab-runner/cache/group/project/repo/"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10429 次 |
| 最近记录: |