Вторая работа Azure Pipelines не находит результатов первой работы - PullRequest
1 голос
/ 04 ноября 2019

Я начинаю с azure-pipelines.yml

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

Проблема в том, что второе задание выполнило шаг сценария и не находит папку Release, которую должно было создать предыдущее:

trigger:
- master

pool:
  vmImage: 'ubuntu-18.04'

stages:
- stage: CI
  jobs:
  - job: Build
    steps:
    - task: NuGetAuthenticate@0
    - script: dotnet restore --no-cache --force
    - script: dotnet build --configuration Release --no-restore
  - job: UnitTests
    dependsOn: Build
    steps:
    - script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll

Однако, если я добавлю все шаги в одну и ту же работу, она будет работать:

trigger:
- master

pool:
  vmImage: 'ubuntu-18.04'

stages:
- stage: CI
  jobs:
  - job: Build
    steps:
    - task: NuGetAuthenticate@0
    - script: dotnet restore --no-cache --force
    - script: dotnet build --configuration Release --no-restore
    - script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll

Я не смогу найти ответ, почему зависимая работа не может найти в файловой системе папки, которыепредыдущий сгенерировал. Любое объяснение или ссылка на что-то, что проясняет это, будет высоко ценится.

Я использовал gitlab в прошлом, и я не помню подобное поведение, хотя я не знаю, было ли у него понятие работы какдругое дело с шагами.

1 Ответ

2 голосов
/ 04 ноября 2019

Ключевым элементом, который вам не хватает, является то, что задания выполняются на независимых агентах (на отдельных компьютерах) и не имеют какой-либо общей файловой системы.

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/phases?view=azure-devops&tabs=yaml

Любые файлы, созданные водно задание, которое вы хотите сделать доступным для зависимого задания, должно быть явно подготовлено (в задании 'A') и затем явно загружено (в задании 'B').

См. публикацию:

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/publish-build-artifacts?view=azure-devops

И скачать:

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/download-build-artifacts?view=azure-devops

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