我正在使用 GitLab CI 构建 C# 解决方案,并尝试将一些构建工件从一个构建阶段传递到另一个构建阶段。
问题是,工件不是位于单个目录中,而是位于不同的子目录中,但是它们都具有相同的名称bin/
或obj/
.
我的.gitlab-ci.yml
样子如下:
...
stages:
- build
- test
build:
stage: build
script:
CALL %MSBuild% ...
artifacts:
paths:
- /**/bin/
- /**/obj/
expire_in: 6 hrs
test:
stage: test
dependencies:
- build
...
我尝试使用不同的方式捕获工件,例如
**/bin/
**/obj/
(无效语法),或
.*/bin/
.*/obj/
但是那个没有发现任何工件,就像/**/bin/
and一样/**/obj/
,给了我以下错误:
Uploading artifacts...
WARNING: /**/bin/: no matching files
WARNING: /**/obj/: no matching files
如何指定要扫描工件的子目录模式?或者这甚至可能吗?
只需使用
artifacts:
untracked: true
不是一个选项,因为有一个巨大的未跟踪packages/
子目录,这会导致由于存档太大而导致工件上传失败:
Uploading artifacts...
untracked: found 4513 files
ERROR: Uploading artifacts to coordinator... too large archive id=36 responseStatus=413 Request Entity Too Large token=...
FATAL: Too large