Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Передача workspace в качестве параметра для параметризированной сборки Jenkins


(Евгений Бухгаммер) #1

Добрый день!
На одном из проектов в виду его легаси статуса и не менее легаси методик разработки мне увы не приходится ждать, что код проекта будет стучать по по post commit hook’у в мой Дженкинс для последующего запуска автотестов.

За сим возникла необходимость поллить папки с билдами и инциировать запуск GUI тестов на эти билды.
Т.к. задача сама по себе не сборочная, а больше cron-task’овая, то очевидно, что мне нужно рабочую папку указывать свою, кастомную. Почему? При запуске тестов cwd передается и импорты в питоньих скриптах работают как положено.

Логика запуска тестов подразумевает, что поллер, как только нашел новый билд, дергает питоний скрипт, который уже разбирается дальше, какие проекты сейчас “свежие” и какие соответсвующие сьюты нужно запустить. Проблема состоит в том, что в каждом Job’е должен перед запуском прописываться разный workspace, чтобы относительные пути импортов в проекте работали, как если бы первый шаг запуска head скрипта был именно из папки, в которой он и находится.

Для этого я:

  1. имею параметризированную сборку
  2. завел параметр WORKSPACE
  3. в расширенных настройках проекта ставлю “Использовать другую директорию” и пробовал указывать %workspace%, $workspace, но все без толку.

в логе фигурирует:
Building in workspace C:\Program Files (x86)\Jenkins\"C:\autotests\smoke_testing\product"

т.е. переменная в кавычках прочиталась правильно, но почему-то добавилась к существуюшему пути, вместо того, чтобы быть абсолютным.

Буду очень признателен за решение проблемы передачи кастомной рабочей директории и благодарен за любые замечания :slight_smile:


#2

Кавычки он не понимает.

Пишу: set WORKSPACE=“C:\my_workspace”
Выводит: Building in workspace C:\home\jenkins"C:\my_workspace"

Пишу: set WORKSPACE=C:\my_workspace
Выводит: Building in workspace C:\my_workspace


(Евгений Бухгаммер) #3

Отлично, просто отлично! Спасибо, немного странно, почему так работает. Вполне себе можно же после оверрайда поял custom workspace, делать парсинг пути на его существование, а так они зааппендили к умеющейся в системных настройках и все.