Многоступенчатая рабочая среда очищается после каждой стадии
Как сказал Даниил, ДА, это сделано специально.
Для azure devops конвейера, как мы спроектировали, workspace
существует для одного agent job
. То есть у каждого задания агента есть отдельное рабочее пространство :
Когда вы запускаете задание пула агентов, оно создает рабочее пространство на агенте. Рабочая область - это каталог, в который она загружает исходный код, выполняет шаги и выдает выходные данные.
Если вы обратите внимание на размещенные агенты, которые используют разные задания агентов, вы обнаружите их после завершения одного задания агента. Следующим будет использование других новых агентов. Это наиболее очевидное проявление моих слов выше.
Если вы используете частный агент, то в это время кеш рабочей области (, такой как файлы, двоичные файлы и т. Д. ) предыдущего агента работа может быть сохранена, пока вы не очистите их. Но вы не можете вызывать их по каким-то предопределенным переменным, например, Build.SourcesDirectory
.
В вашем сценарии вы сказали, что следующий этап имеет зависимость файлов от предыдущего этапа.
Чтобы избежать проблемы, вызванной этим ограничением по умолчанию, вы можете использовать Publish artifact
и download artifact
. Этот способ может помочь вам передать файлы между этапами. Publi sh и загрузка артефактов .