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

时间:2017-02-17 15:15:51

标签: gitlab-ci gitlab-ci-runner

我在我的一个项目中使用Gitlab CI,我面临以下问题:

  • 我的master构建因很长时间而失败......
  • 我推送一个从master构建的新分支(没有新的提交)并推送它,构建工作。

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

有没有办法清理特定分支上的构建缓存?就我而言master?从API?

2 个答案:

答案 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