是否可以使给定分支上的构建缓存无效?
Is it possible to invalidate build cache on a given branch?
我在我的一个项目中使用 Gitlab CI,我遇到了以下问题:
- 我的
master
构建失败了很长时间...
- 我推送了一个从 master 构建的新分支(没有新提交)并推送它,构建工作。
我认为这与构建缓存有关,因为代码库完全相同...最新有效的构建缓存可能会使当前代码库失败...
有没有办法清理特定分支上的构建缓存?在我的例子中 master
?来自 API ?
最后,Gitlab 团队在 Twitter 上给了我解决方案:https://twitter.com/gitlab/status/832674380790394880
由于我的存储库托管在 gitlab.com 上,我无法自行删除缓存。但是在 .gitlab-ci.yml
文件文档中,解释说我们可以使用 cache:key
条目。
此 cache:key
用于确定缓存条目的命名方式,以便我可以更改默认值以从空白缓存开始。
下面是我的 .gitlab-ci.yml
文件的示例:
my-asset-build:
cache:
key: "$CI_COMMIT_REF_NAME-assets"
使用该配置,我的缓存与带有后缀 !
的当前引用相关(因此基于相同引用的构建将使用缓存)
感谢 Gitlab 团队在 Twitter 上的快速回答!
如果您对变量名有疑问,也许您需要查看此页面:https://docs.gitlab.com/ce/ci/variables/README.html#9-0-renaming
此外,从 Gitlab 10.4 开始,我们在管道列表中有一个 "Clear runner cache" 按钮。单击该按钮将具有与更改变量名称相同的效果而不污染提交历史。
CI_BUILD_REF_NAME 已弃用,您应该使用新的 CI 变量名称。
https://docs.gitlab.com/ce/ci/variables/README.html#9-0-renaming
我在我的一个项目中使用 Gitlab CI,我遇到了以下问题:
- 我的
master
构建失败了很长时间... - 我推送了一个从 master 构建的新分支(没有新提交)并推送它,构建工作。
我认为这与构建缓存有关,因为代码库完全相同...最新有效的构建缓存可能会使当前代码库失败...
有没有办法清理特定分支上的构建缓存?在我的例子中 master
?来自 API ?
最后,Gitlab 团队在 Twitter 上给了我解决方案:https://twitter.com/gitlab/status/832674380790394880
由于我的存储库托管在 gitlab.com 上,我无法自行删除缓存。但是在 .gitlab-ci.yml
文件文档中,解释说我们可以使用 cache:key
条目。
此 cache:key
用于确定缓存条目的命名方式,以便我可以更改默认值以从空白缓存开始。
下面是我的 .gitlab-ci.yml
文件的示例:
my-asset-build:
cache:
key: "$CI_COMMIT_REF_NAME-assets"
使用该配置,我的缓存与带有后缀 !
的当前引用相关(因此基于相同引用的构建将使用缓存)感谢 Gitlab 团队在 Twitter 上的快速回答!
如果您对变量名有疑问,也许您需要查看此页面:https://docs.gitlab.com/ce/ci/variables/README.html#9-0-renaming
此外,从 Gitlab 10.4 开始,我们在管道列表中有一个 "Clear runner cache" 按钮。单击该按钮将具有与更改变量名称相同的效果而不污染提交历史。
CI_BUILD_REF_NAME 已弃用,您应该使用新的 CI 变量名称。
https://docs.gitlab.com/ce/ci/variables/README.html#9-0-renaming