Azure рабочая среда DevOps Multi Stage очищается после каждого этапа - PullRequest
0 голосов
/ 21 января 2020

Наша сборка выполняется в Azure DevOps с использованием файла Yaml с многоступенчатым шаблоном. Я заметил, что после каждого этапа рабочее пространство конвейера удаляется, а следующий этап, который зависит от файлов, присутствующих в рабочем пространстве, не выполняется.

1 Ответ

0 голосов
/ 22 января 2020

Многоступенчатая рабочая среда очищается после каждой стадии

Как сказал Даниил, ДА, это сделано специально.

Для azure devops конвейера, как мы спроектировали, workspace существует для одного agent job. То есть у каждого задания агента есть отдельное рабочее пространство :

Когда вы запускаете задание пула агентов, оно создает рабочее пространство на агенте. Рабочая область - это каталог, в который она загружает исходный код, выполняет шаги и выдает выходные данные.

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

Если вы используете частный агент, то в это время кеш рабочей области (, такой как файлы, двоичные файлы и т. Д. ) предыдущего агента работа может быть сохранена, пока вы не очистите их. Но вы не можете вызывать их по каким-то предопределенным переменным, например, Build.SourcesDirectory.


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

Чтобы избежать проблемы, вызванной этим ограничением по умолчанию, вы можете использовать Publish artifact и download artifact. Этот способ может помочь вам передать файлы между этапами. Publi sh и загрузка артефактов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...