Конвейер YAML для сборки сайта Blazor WebAssembly stati c - PullRequest
0 голосов
/ 25 мая 2020

У меня есть проект Blazor WebAssemby, который для целей этого примера использует шаблон по умолчанию для проектов WebAssembly на Blazor. У меня есть код, зарегистрированный в моей учетной записи DevOps, и я использую следующие настройки для моей задачи сборки:

- task: VSBuild@1
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:WebPublishMethod=FileSystem'
    platform: 'Any CPU'
    configuration: 'Release'

Когда я публикую sh это локально, используя 'FileSystem' Я использую my '/ bin / Release / netstandard2.1 / wwwroot/' папка набор файлов, которые я могу скопировать на веб-сайт stati c для запуска, который включает индекс '. html ', ' appsettings. json ', моя ' css ' папка, а также папка ' _ framework '.

При работе в DevOps сборка создает только папку '_ framework' в '/ bin / Release / netstandard2.1 / wwwroot/' но есть все остальные необходимые файлы.

После некоторой игры с аргументами сборки я заметил, что папка '/ obj / Release / netstandard2.1 / PubTmp / Out / wwwroot/' содержит все файлы. Есть ли причина для такого поведения? Насколько я понимаю, папка obj предназначена только для временных ресурсов сборки и не должна использоваться для развертывания. Есть ли дополнительные аргументы сборки, которые мне не хватает? Я пробовал несколько вариантов, включая метод 'Package' publi sh, но все равно не повезло.

Мой план - запустить AzureFileCopy после активы находятся в папке / bin / Release / netstandard2.1 / wwwroot/. Может, есть способ лучше с этим справиться? Вот полный файл YAML:

variables:
  azureSubscription: '[SUBSCRIPTIONNAME]'
  storageName: '[STORAGENAME]'

trigger:
- master

pool:
  vmImage: 'windows-latest'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:WebPublishMethod=FileSystem'
    platform: 'Any CPU'
    configuration: 'Release'

- task: AzureFileCopy@4
  inputs:
    SourcePath: '**/bin/Release/netstandard2.1/wwwroot/*'
    azureSubscription: '$(azureSubscription)'
    Destination: 'AzureBlob'
    storage: '$(storageName)'
    ContainerName: '$web'
...