没有创建Gitlab工件

时间:2017-08-17 14:49:22

标签: gitlab gitlab-ci

我有以下.gitlab.yaml文件

stages:
 - build
 - test

compile:
 stage:build
 script:
 - stuff_happening

test_1:
 stage: test
 script:
 - do_something_1
 artifacts:
  when: on_failure
  name: "$CI_COMMIT_REF_NAME"
  paths:
  - /root/dir

执行test_1时,会在dir内创建一个文件夹root 我想将它添加到工件但是,我得到一个错误说: no matching files。如果我在作业中添加- ls root,我可以看到该文件夹​​。

支持论坛中有一个开放的question,但仍然没有回复。

有人可以帮忙吗?感谢

2 个答案:

答案 0 :(得分:1)

这里的问题是您正在尝试上传项目范围之外的文件。

来自官方documentation on artifacts

  

您只能使用项目工作区内的路径。

原因很明显;如果允许git runner在其工作空间之外上传任何内容,则会导致严重的安全问题。

但是,如果你真的想要在跑步者工作区之外上传任何内容,你可能想尝试将文件外部复制到项目的根文件夹中,然后从那里上传。

git运行者通常注册为user:group git-runner:git-runner,因此如果您希望从sudo privilege复制文件,则可能需要/root

答案 1 :(得分:0)

根据https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts

您可以尝试在路径后添加其他斜杠。

paths:
- /root/dir/

上述链接中的示例:

  

以二进制文件和.config发送所有文件:

artifacts:
  paths:
  - binaries/
  - .config