У меня есть сервер Jenkins, с которого я хочу загрузить артефакты сборки. Проблема в том, что при настройке задания артефакт сборки включает номер задания, например. NightlyBuild-346.tar.bz2
. Нам нравятся номера работ, потому что они позволяют легко узнать, сколько лет конкретной сборке.
Это становится проблематичным, потому что я не знаю точного имени файла, который я загружаю — я просто знаю, что мне нужна последняя успешная сборка. Я мог бы сделать что-то вроде этого:
- name: download build from CI
get_url:
url: "https://ci.contoso.com/job/NightlyBuild/lastSuccessfulBuild/artifact/NightlyBuild-345.tar.bz2"
dest: /tmp/NightlyBuild-345.tar.bz2
... но это сломается после того, как Дженкинс закончит следующую ночную сборку, потому что артефакт станет NightlyBuild-346.tar.bz2
. Я думаю, что у меня есть несколько вариантов здесь:
- Попробуйте использовать подстановочные знаки в модуле
get_url
(не уверен в этом) - Загрузите ВСЕ артефакты из задания (их несколько) как один
archive.zip
и используйте командную строку и магию регулярных выражений, чтобы найти фактический артефакт сборки, который мне нужен. (потенциал горячего неуправляемого беспорядка) - Используйте REST API, чтобы получить номер задания для последнего успешного задания и сформировать полный URL-адрес. (не уверен, что Ansible позволяет мне устанавливать такие переменные на лету).
Это мои варианты? Есть ли лучший способ сделать это? Я хочу в конечном итоге опубликовать в репозитории Artifactory из Jenkins, и если это правильно, я был бы признателен за некоторые указатели в этом направлении.