是否可以使给定分支上的构建缓存无效?

Is it possible to invalidate build cache on a given branch?

我在我的一个项目中使用 Gitlab CI,我遇到了以下问题:

我认为这与构建缓存有关,因为代码库完全相同...最新有效的构建缓存可能会使当前代码库失败...

有没有办法清理特定分支上的构建缓存?在我的例子中 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