在GitLab CI的git clean运行时,如何解决异步过程创建文件的问题?

时间:2018-12-14 02:31:41

标签: gitlab gitlab-ci

事件的典型顺序:

  1. 工作启动后台服务。
  2. 工作因某种原因失败。
  3. 新工作开始。
  4. 新作业失败,因为前一个作业的命令仍在创建文件。这会导致错误消息,例如

      

    警告:无法删除/ some / path:目录不为空

    来自git clean

不起作用的东西:

  • before_scriptgit clean之后运行,所以我无法清理那里的状态。
  • after_script不能保证运行相同的CI运行器,所以我不能用它来清理状态。

技术上可行的东西

  • 在每个命令之后都无法插入大量|| {first cleanup command; second cleanup command; …}

1 个答案:

答案 0 :(得分:1)

在GitLab项目的CI / CD设置中,有一个选项git clone而不是git fetch来获取最新的代码。因为这样可能会rm完整地处理麻烦的目录,所以它应该可以工作。对于一个大型项目而言,这将非常慢,但是在这种情况下,源代码树只有几MB。

它有效,但是我会奖励任何以更优雅的方式解决此问题的人。