Как загрузить общий файл в Jenkins?

Я пытаюсь найти способ предложить пользователю выбрать и загрузить общий файл с локального компьютера до задания Jenkins до сборки. Входной файл, который пользователь загружает, не обязательно является текстом или файлом свойств.

Я специально пытаюсь заставить пользователя "выбрать" их нужный файл - перейти к их файлу; пользователь не должен передавать путь к файлу.

Спасибо

Ответы

Ответ 1

Используйте Параметры файла:

Параметр файла позволяет сборке принимать файл, который должен быть отправлен пользователем при планировании новой сборки. Файл будет помещен в рабочую область в известном месте после завершения проверки/обновления, так что скрипты сборки могут использовать этот файл.

введите описание изображения здесь

Если вам нужно проверить, что файл имеет определенное расширение, вам нужно будет сделать это с помощью script как часть вашего задания и не выполнить задание - это расширение/тип содержимого не соответствует тому, что вам нужно.

Ответ 2

Это довольно раздражает, когда вы не знаете, каким будет имя файла или нужно будет изменить его имя до того, как оно достигнет цели. Вам нужно выполнить взлом. Вот как я это делаю:

  • Используйте параметр "Параметры файла" для загрузки файла
  • Используйте OS-специфичный script, чтобы переименовать файл из того, что вы назвали своим File Parameter, к тому, что вы хотите, например, если мой File Parameter имел значение File location file_name вместо фактический относительный путь к файлу, я бы тогда сделал что-то вроде этого, скажем, Windows внутри Build-Step для "Execute Windows Batch Command":

move .\file_name .\%file_name%

А затем просто используйте ArtifactDeployer, чтобы скопировать все туда в нужное место.

ps: это не приведет к удалению цифровых подписей, поэтому операция перемещения следует считать максимально безопасной.