Агент TFS linux игнорирует переменную Build.Repository.Clean - PullRequest
1 голос
/ 26 февраля 2020

Ситуация:

  • TFS 2018

  • Процесс сборки состоит из двух этапов - выполняется на агентах Windows и Linux соответственно

  • Get sources (TFV C) имеет флаг Clean, установленный на false

Проблема:

  • Linux агент (в отличие от своего аналога) игнорирует флаг Clean - он всегда выполняется tf workspace -delete, ... -new, et c.

Я добавил " «Переменные печати» и можно было четко видеть, что Build.Repository.Clean равен false на каждом этапе.

Есть ли способ исправить это?

Дополнительная информация:

Установка system.debug в true создает интересный журнал:

Querying workspace information.
##[debug]tf workspaces -format:xml "-collection:<tfs-server-url>" -jwt:******** -noprompt
##[debug]No workspace matching *;Project Collection Build Service (<collection-name>) on computer <computer-name> found in Team Foundation Server <tfs-server-url>.
##[debug]<?xml version="1.0" encoding="utf-8"?><workspaces/>
##[debug]Sources directory does not exist or is empty.
##[debug]tf workspaces ws_1_14 -computer:* -format:xml "-collection:<tfs-server-url>" -jwt:******** -noprompt
##[debug]No workspace matching ws_1_14;Project Collection Build Service (<collection-name>) on computer * found in Team Foundation Server <tfs-server-url>.
##[debug]Deleting: '/home/<user>/agent/_work/1/s'.
##[command]tf workspace -new -location:local -permission:Public ws_1_14 "-collection:<tfs-server-url>" -jwt:******** -noprompt
Workspace 'ws_1_14' created.

Но когда я захожу на эту машину и запускаю эти команды самостоятельно (без -jwt:... -noprompt) - я получаю правильную информацию около ws_1_14 рабочего пространства. Агент выполняется как демон / служба, созданная с помощью sudo ./svc.sh install; sudo ./svc.sh start. Это означает, что проблема находится где-то в среде этого демона.

1 Ответ

0 голосов
/ 27 февраля 2020

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

Решение состоит в том, чтобы изменить имя хоста на короткое и без точек (например, sudo hostnamectl set-hostname shortname) и снова запустить сборку (он создаст рабочую область с коротким именем хоста в Computer column) и все последующие сборки должны работать нормально.

...