Я использую GoCD для создания проекта с большим количеством модулей и смоделировал его как конвейер с двумя этапами (этап 1 — сборка кода, этап 2 — запуск тестов). Структура каталогов после успешного этапа сборки выглядит примерно так:
myproject/
|-- myproject-module1
| |-- build <-- created by stage 1, required by stage 2
| `-- src
|-- myproject-module2
| |-- build <-- created by stage 1, required by stage 2
| `-- src
|-- myproject-module3
| |-- build <-- created by stage 1, required by stage 2
| `-- src
`-- ... many more modules ...
На этапе 1 я настроил артефакт сборки с источником */build
, а на этапе 2 я пытаюсь снова получить все папки сборки с источником *
с намерением, чтобы они оказались в правильном месте рядом с папкой src
внутри каждого модулей проекта.
К сожалению, я пока не нашел способа добиться этого. Кажется, что GoCD создает отдельный ZIP-файл для всех папок *\build
, и во время выборки файл *.zip
не может быть найден (я предполагаю, что он действительно ищет файл с таким точным именем, а не использует подстановочные знаки). Конечно, я мог бы жестко закодировать все имена модулей и извлекать myproject-module[1:n]
по отдельности, но именно этого я и хочу избежать.
Есть ли у кого-нибудь совет о том, как этого можно достичь?
В этом обсуждении от 2014 г. утверждается, что подстановочные знаки не могут использоваться для извлечения артефактов. Неужели до сих пор так?!