我有以下.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,但仍然没有回复。
有人可以帮忙吗?感谢
答案 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