Конфликт TeamCity с символом % в шаге построения командной строки
У меня есть пакетный файл, который я использую для копирования папки, и его содержимое в новое место, он также создает имя папки на основе даты и времени (и это работает):
SET TODAY=%DATE:/=-%
SET NOW=%TIME::=-%
XCOPY /S /Y "C:BuildAgenttempbuildTmp" "C:Automation Results%TODAY%_%NOW%"
Я добавил новый шаг конфигурации в настройку Team City, чтобы включить этот пакетный файл. Шаг сборки - это командная строка - пользовательский скрипт:
но это отрицательно влияет на требования агента TC, и я не могу запустить свой TC строит:
эта проблема, похоже, связана с неявными требованиями TC:
http://confluence.jetbrains.com/display/TCD8/Agent + требования
"Неявные Требования Любая ссылка (имя в %-знаках) на неизвестный параметр считается "неявным требованием". Это означает, что сборка будет выполняться только на агенте, который предоставляет именованные параметры. В противном случае параметр должен быть доступен для создайте конфигурацию, определив ее на уровнях конфигурации сборки или проекта."
Как я могу обойти этот конфликт TC с символом%, который мне нужен в моем пакетном файле?
2 ответов
использовать %%
вместо %
SET TODAY=%%DATE:/=-%%
SET NOW=%%TIME::=-%%
XCOPY /S /Y "C:\BuildAgent\temp\buildTmp" "C:\Automation Results\%%TODAY%%_%%NOW%%\"
это гарантирует, что переменные рассматриваются как переменные пакетного файла вместо переменных TeamCity.
поместите содержимое скрипта сборки в файл, например, скопируйте.bat и вызовите этот пакетный файл из TeamCity
Addtionally, изменение от Custom script
до Executable with parameters