Удалить сопоставление рабочего пространства TFS после выполнения задания jenkins - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь запустить задание Jenkins, использующее плагин TFV C. Ранее у нас была проблема с длиной имен рабочего пространства TFS (за исключением длины> 75 символов). Для решения этой проблемы мы внесли изменения в конфигурацию TFV C.

Имя рабочего пространства по умолчанию в TFV C: Hudson-${JOB_NAME}-${NODE_NAME}

После изменения: Hudson-${JOB_NAME}

Опубликовать это изменение задание было успешно выполнено. Мы не можем выполнить это несколько раз, поскольку рабочее пространство TFS, созданное во время успешного запуска, не было удалено. и выдает следующее исключение:

FATAL: hudson.remoting.ProxyException: com.microsoft.tfs.core.exceptions.TECoreException: The workspace scanAPI;tfsjenkins already exists on computer ip-XX-XX-XX-XX.

Я попытался удалить рабочее пространство Jenkins на этапах до / после сборки. Это не влияет на рабочее пространство TFS.

Дополнительная информация: задания выполняются на узле linux, и поэтому я не могу запустить windows команды

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Обновление

Для Linux вы сможете использовать его через Team Explorer везде . Это также включает командную строку tf.

Взгляните на Настройка рабочего пространства с помощью Team Explorer Everywhere на Linux

Должно быть похоже на Linux.


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

enter image description here

Если вы хотите удалить рабочее пространство, просто добавьте новый шаг посткомпоновки, можно добавить команду очистки для удаления ранее созданного рабочего пространства TFS .

%TFS% workspace /delete /noprompt /collection:"{your-tfs-team-project-collection-url}" "Hudson-%JOB_NAME%;{your-domain-user-name}"

Более подробно вы можете обратиться к этому пошаговому руководству Дженкинс Получить исходный код по спецификациям c TFS Changeset

0 голосов
/ 17 марта 2020

Вы можете использовать сценарий Post Build, который использует tf.exe для удаления рабочей области TFV C, с помощью команды delete.

Создайте глобальную переменную среды, чтобы иметь возможность получить доступ к TF.exe проще. например:

enter image description here

Примечание: путь к tf.exe зависит от того, какая Visual Studio установлена ​​на компьютере Jenkins .

Добавьте пакетную команду Windows из меню сценариев с помощью следующей команды:

%TFS% workspace /delete /noprompt /collection:”https://tfs.codeplex.com:443/tfs/TFS27″ “Hudson-%JOB_NAME%;snd\7astlivec_cp”

Замените URL-адрес URL-адресом вашего сервера TFS и измените snd \ 7astlivec_cp на свой Пользователь TFS. Команда собирается удалить только что созданное рабочее пространство TFS.

Другой вариант - добавить tf.exe. местоположение к машинной переменной PATH и использовать ее напрямую: tf workspace /delete .......

...