Всегда ли ArtifactStagingDirectory пуст при каждой сборке в конвейере DevOps - PullRequest
0 голосов
/ 11 апреля 2019

Мы используем конвейер сборки в DevOps Azure для создания артефакта развертывания.Типичные шаги в таком конвейере:

  • Построение решения / проекта
  • Копирование dll-вывода в $Build.ArtifactStagingDirectory
  • Публикация артефакта из $Build.ArtifactStagingDirectory

Мне просто интересно, могу ли я рассчитывать на то, что при запуске каждой сборки Build.ArtifactStagingDirectory будет пустым.Или я должен очистить папку как первый шаг, чтобы быть уверенным?

По моему опыту, папка всегда была пустой, но я не уверен, могу ли я на это положиться.Это что-то особенное для агента, размещенного в Azure, и, возможно, с помощью пользовательских агентов сборки мне нужно вручную очистить эту папку?Может быть, некоторые старые файлы из последней сборки могли остаться там?Я не нашел эту информацию в документации.

Спасибо.

1 Ответ

2 голосов
/ 11 апреля 2019

Я думаю, что основная идея этой переменной $Build.ArtifactStagingDirectory - быть чистой областью, чтобы вы могли управлять кодом, который вы отправляете из своего репо. Насколько я знаю, в документации нет явной информации о том, что эта папка пуста при каждой новой сборке, но есть несколько «подсказок»:

  1. В документации о переменных сборки Microsoft вы можете видеть, что Build.StagingDirectory всегда очищается перед каждой новой сборкой, поэтому у вас есть новый старт каждой сборки.
  2. В приведенной выше документации есть несколько случаев, когда в явном виде указывается, что некоторые папки или файлы не очищаются в новой сборке, например, переменная Build.BinariesDirectory.
  3. Я выполнил несколько сборок и выпусков, указывающих на мое веб-приложение в Azure, и никогда не видел нежелательных файлов или папок, не связанных с моим конвейером сборки.

Надеюсь, это поможет.

...