我在我的一个项目中使用Gitlab CI,我面临以下问题:
master
构建因很长时间而失败...... 我认为它与构建缓存有关,因为代码库完全相同......最新的有效构建缓存可能会使当前代码库失败...
有没有办法清理特定分支上的构建缓存?就我而言master
?从API?
答案 0 :(得分:8)
最后,Gitlab团队在Twitter上给了我解决方案:https://twitter.com/gitlab/status/832674380790394880
由于我的存储库托管在gitlab.com上,我无法自行删除缓存。但是在cache:key
文件文档中,我们解释说我们可以使用cache:key
条目。
此.gitlab-ci.yml
用于确定如何命名缓存条目,以便我可以将默认值更改为在空白缓存中启动。
我的my-asset-build:
cache:
key: "$CI_COMMIT_REF_NAME-assets"
文件示例下方:
newCall: function(req, res) {
if (!req.isSocket)
return res.badRequest;
Call.create({
payload: req.body
})
.exec(function (err, newCall){
if (err) return res.negotiate(err);
Call.publishCreate(newCall);
res.ok(newCall);
});
},
getCalls: function(req, res) {
Call.find()
.then(function(calls) {
Call.watch(req.socket);
console.log(req.socket.id + ' is now watching for changes to Calls model');
res.send(calls);
})
.catch(function(err) {
console.log(err);
});
}
使用该配置,我的缓存与当前引用相关(因此同一引用的构建将使用缓存)带有后缀!
感谢Gitlab团队在Twitter上的快速回答!
如果您对变量名称有疑问,可能需要查看此页面:https://docs.gitlab.com/ce/ci/variables/README.html#9-0-renaming
此外,自Gitlab 10.4以来,我们在管道列表中有一个“Clear runner cache”按钮。单击该按钮将具有与更改变量名称相同的效果,而不会污染提交历史记录。
答案 1 :(得分:0)
不推荐使用CI_BUILD_REF_NAME,您应该使用新的CI变量名称。
https://docs.gitlab.com/ce/ci/variables/README.html#9-0-renaming