Azure Pipelines second job does not find results of first job

怎甘沉沦 提交于 2020-01-24 23:59:28

问题


I am getting started with azure-pipelines.yml

I wanted to have 2 jobs within the same stage. One to build a solution and the other to run unit tests.

The problem is that the second job executed a script step and it does not find a folder Release that the previous one should have created:

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

However if I add all the steps within the same job it works:

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

I cannot find an answer on why a dependent job cannot find on the file system the folders that a previous one has generated. Any explanation or link to something that clarifies that would be much appreciated.

I have used gitlab in the past and I don't recall a similar behavior although I don't know whether it had the concept of job as a different thing to steps.


回答1:


The key element that you are missing is that jobs run on independent agents (separate computers) and do not have any kind of shared filesystem.

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

Any files created in one job that you want to make available on a dependent job must be explicitly staged (in job 'A') and then explicitly downloaded (in job 'B').

See publish:

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

And download:

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



来源:https://stackoverflow.com/questions/58685399/azure-pipelines-second-job-does-not-find-results-of-first-job

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!