У меня есть два azure devops конвейера следующим образом:
- первый создает артефакт с именем AncientArtifact-1.2.0. $ (Build.BuildId) '.
- второй пытается использовать этот артефакт с помощью задачи Download Build Artifacts , настроенной следующим образом:
Это создает папку с именем 'AncientArtifact-1.2.0.12345' (первый самый последний конвейер BuildId = 12345) внутри $ (CustomDestinationFolder) во второй сборке конвейера.
Я хочу переименовать указанную выше папку в нечто вроде «древнего» и переместить это в другой каталог во второй конвейерной сборке для включения во второй конвейерный артефакт.
Я пытался использовать задачу copy files , но проблема в том, что я не знаю имени скачанная папка артефакта, поэтому я могу указать только ее родительский $ (CustomDestinationFolder) в качестве исходной папки, и поэтому моя папка назначения будет выглядеть примерно как $ (destinationFolder) \ AncientArtifact-1.2 .0.12345 *. Использование параметра flattenFolders сгладит все, и это не то, что я хочу.
Некоторые подходы приходят на ум:
- Удалите $ (Build.BuildId) из имени артефакта. Таким образом, я знаю точное имя, которое будет иметь загруженный артефакт. Проблема в том, что я хотел бы сохранить его.
- Пользовательский сценарий во втором конвейере, который будет перечислять папки внутри $ (CustomDestinationFolder), получать имя папки артефакта, переименовывать его в жестко закодированный «древний» имя. Чувствуется довольно хаки sh.
Есть ли лучший способ справиться с этим?