Как указать подкаталоги артефактов подстановочных знаков в.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
не вариант, из-за огромного untracked 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
1 ответов
на gitlab-ci-multi-runner build runner построен с использованием Go и в настоящее время использует путь_к_файлу.Glob () для сканирования любых указанных артефактов в file_archiver.go.
Go, похоже, не поддерживает выражение double star glob, как обсуждалось в другом вопросе здесь на SO. Так что кажется, нет никакого способа использовать полнофункциональный **/bin
выражения в данный момент.
потому что однако все мои проекты расположены на одном уровне ниже корня решения, все еще можно использовать что-то вроде
artifacts:
paths:
- "*/bin"
- "*/obj"
обратите внимание, что кавычки ("
), кажется, требуется, а также нет разделитель пути трейлинга в конце.
Это также должно быть возможным, чтобы явным образом добавить больше уровней, добавив более подстановка выражений (как описано здесь):
paths:
...
- "*/obj"
- "*/*/bin"
- "*/*/obj"
...