如何在.gitlab-ci.yml中指定通配符工件子目录?

买东西

我正在使用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/和一样/**/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
买东西

gitlab-CI-多亚军构建亚军是使用内置围棋和目前使用filepath.Glob()扫描在任何指定的文物file_archiver.go

围棋似乎并不支持双星全局正则表达式中的另一个问题讨论这里的SO。因此,目前似乎无法使用功能齐全的**/bin表达式

因为我的所有项目都位于解决方案根目录下的同一级别,所以仍然可以使用类似

artifacts:
  paths:
    - "*/bin"
    - "*/obj"

请注意,"似乎需要使用引号(),并且末尾没有尾随路径分隔符。

它也应该可以通过增加更多的通配符表达式(如描述明确添加更多的级别在这里):

paths:
  ...
  - "*/obj"
  - "*/*/bin"
  - "*/*/obj"
  ...

GitLab正在追踪这个问题在这里,并且有可能被固定在以后的版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何测试gitlab-ci.yml?

gitlab 8.2.1,如何在.gitlab-ci.yml中使用缓存

如何在.gitlab-ci.yml中的Docker容器中装载卷?

如何在gitlab-ci中缓存

如何在gitlab-ci.yml文件中使用Rabbit?

如何在.gitlab-ci.yml中合并序列?

如何在gitlab-ci中指定子模块分支?

如何在Gitlab CI中使用Dockerfile

如何在.gitlab-ci.yml变量中使用条件?

找不到Gitlab CI工件

如何在gitlab-ci.yml中指定我的本地.bat文件(在Gitlab服务器上运行)?

如何在gitlab-ci.yml中添加多行bash EOD命令?

如何在Gitlab中为简单的hello world程序配置gitlab-ci.yml

如何在gitlab ci中合并Dockerfile?

如何在gitlab-ci.yml文件的“脚本”部分中设置变量

Gitlab如何在CI中评论发布?

如何在gitlab-ci.yml中将drush用作服务?

GitLab CI获得最后的工件

如何在gitlab ci中指定更改补码?

GitLab CI:如何连接到以.gitlab-ci.yml脚本启动的Docker容器?

如何在.gitlab-ci.yml中重用作业

如何在Gitlab CI中从共享的yml文件中重用before_script?

如何在本地触发Gitlab CI构建?

如何在gitlab-ci.yml中指定图像平台

如何让 gitlab-runner 从指定文件而不是 .gitlab-ci.yml 读取?

gitlab-ci 缓存如何在 docker runner 上工作?什么是/cache目录?什么是缓存目录?

当版本标签在文件中时,如何在 gitlab-ci.yml 中加载图像?

如何在 .gitlab-ci.yml 中转义冒号?

如何覆盖 .gitlab-ci.yml 中的 gitlab 组或项目 CD/CI 变量?