VSTS Yaml vraiables и путь, противоречащий классическому редактору - PullRequest
0 голосов
/ 06 апреля 2019

У меня возникла проблема при настройке параметров VSTS classic editor при сравнении с текущим файлом yaml, который работает должным образом.

Ниже работает нормально (Построить конвейер)

- task: CopyFiles@2
      displayName: "Copy Files to: $(Build.ArtifactStagingDirectory)"
      inputs: 
        contents: '$(Build.SourcesDirectory)/src/xxx.EndToEnd.Integration.Tests/**'
        targetFolder: $(Build.ArtifactStagingDirectory)


- task: DotNetCoreCLI@2
      displayName: "dotnet e2e tests"
      inputs:
        command: publish
        publishWebProjects: false
        projects: '**/*.csproj'
        arguments: --output $(Build.ArtifactStagingDirectory)/src/xxx.EndToEnd.Integration.Tests
        zipAfterPublish: false

Но при такой же настройке, как указано ниже, найдите 0 файлов

2019-04-06T10:02:57.5303667Z found 0 files
2019-04-06T10:02:57.5376614Z ##[section]Finishing: Copy Files to: $(Build.ArtifactStagingDirectory)

Я также изменил / на \, но результат тот же.

Ниже представлен конструкторконвейер

enter image description here

Те же результаты для задачи dotnet publish также для Path to project(s) параметр **\**\*.csproj дает ошибку ниже, но выше yamlфайл работает как положено.

2019-04-06T10:02:58.7896707Z ##[error]Project file(s) matching the specified pattern were not found.

1 Ответ

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

В конвейере выпуска переменные Build.SorucesDirectory и Build.ArtifactSatgingDirectory недоступны, эти переменные предназначены только для конвейеров сборки.

На самом деле в папке агента выпуска нет папки «Soruces», а только папка «Artifact». например: C:\agent\_work\r1\a, переменная для получения значения: System.ArtifactDirectory или Agent.ReleaseDirectory.

Подробнее о переменных выпуска вы можете найти здесь .

...