我正在使用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
...
Run Code Online (Sandbox Code Playgroud)
我尝试使用不同的方式捕获工件,例如
**/bin/
**/obj/
Run Code Online (Sandbox Code Playgroud)
(语法无效),或
.*/bin/
.*/obj/
Run Code Online (Sandbox Code Playgroud)
但那个没有找到任何文物,就像/**/bin/并且/**/obj/,给我以下错误:
Uploading artifacts...
WARNING: /**/bin/: no matching files
WARNING: /**/obj/: no matching files
Run Code Online (Sandbox Code Playgroud)
如何指定要扫描工件的子目录模式?或者这甚至可能吗?
简单地使用
artifacts:
untracked: true
Run Code Online (Sandbox Code Playgroud)
不是一个选项,因为一个巨大的未跟踪packages/子目录,由于存档太大导致工件上传失败:
Uploading artifacts...
untracked: found 4513 files
ERROR: Uploading artifacts to …Run Code Online (Sandbox Code Playgroud) WNDCLASS wc;
...
wc.hbrBackground = (HBRUSH)GetStockObject(COLOR_WINDOW+1);
Run Code Online (Sandbox Code Playgroud)
我无法理解什么是+1为了什么是HBRUSH什么?