Gitlab作业如果删除生成目录将失败

Gitlab作业如果删除生成目录将失败,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我在GitLab CI管道的末尾有一项工作,用于清理GitLab runner的构建目录 它不断地失败,但每一步都完美无缺地完成。当我手工在本地复制时,不会出现任何错误 以下是问题中的工作: cleanup: only: - triggers allow_failure: true stage: teardown script: - docker kill PipeLineContainer_$CI_PIPELINE_ID

我在GitLab CI管道的末尾有一项工作,用于清理GitLab runner的构建目录

它不断地失败,但每一步都完美无缺地完成。当我手工在本地复制时,不会出现任何错误

以下是问题中的工作:

cleanup:
    only:
        - triggers
    allow_failure: true
    stage: teardown
    script:
         - docker kill PipeLineContainer_$CI_PIPELINE_ID
         - docker rm PipeLineContainer_$CI_PIPELINE_ID
         - sudo rm -rf /home/gitlab-runner/builds || true
此作业运行时,作业输出显示以下内容:

$docker kill PipeLineContainer\u$CI\u PIPELINE\u ID
管道容器_694
$docker rm PipeLineContainer\uu$CI\u PIPELINE\u ID
管道容器_694
$sudo rm-rf/home/gitlab runner/builds | | true
bash:ligne 87:cd:/home/gitlab runner/builds/5KQvSgfo/0/my_projects/project:没有这样的文件或目录
bash:ligne 87:cd:/home/gitlab runner/builds/5KQvSgfo/0/my_projects/project:没有这样的文件或目录
我猜这是GitLab的一个bug?是否有一种快速的解决方法不涉及本地文件(我的管道依赖于运行程序端别名)


删除root和gitlab runner的
.bash\u注销
文件,正如我在别处看到的建议一样,没有任何作用,顺便说一句。

从表面上看非常清楚,不是吗?您正在删除一个目录,gitlab的脚本包装器生成该目录所需的目录仍然存在。如果您的目标是删除下面更具体的内容,那么就这样做——使您的
rm-rf
更具体,这样它就不会删除gitlab希望仍然存在的位置。(任何关于
.bash\u logout
的内容都是废话;它根本不适用于非交互式shell,
.profile
.bashrc
).@CharlesDuffy如果我在一个完全空的目录中运行
rm-rf
,就会发生这种情况。我不认为删除脚本与此有关。@charlesduff我只删除了构建目录的内容,但保留了目录本身,就解决了这个问题。我不知道这会有什么不同,因为脚本仍然是通过这不是问题,但不管怎样。我的猜测是GitLab希望构建目录存在,但目录中的任何内容对GitLab本身都没有影响。这只是我的一个错误,我希望GitLab基本上只是在我的运行程序上运行SSH命令,并根据脚本comm的返回代码决定作业是否失败或通过我想我错了。