Развертывание проекта WebAPI с несколькими веб-заданиями в Azure Devops - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь использовать Azure Devops для CI / CD.Я создал соответствующие триггеры Git для сборки, когда я нажимаю, и я создаю новую версию всякий раз, когда создаю новую сборку.

На вкладке выпуска я пытаюсь развернуть проект WebAPI с несколькими веб-заданиями, используя "Шаблон «Развернуть службу приложений Azure».Кажется, что все журналы показывают, что все идет хорошо, но в итоге у меня ничего не получается, когда я проверяю службу приложений в Azure!

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

Если я пытаюсь собрать / развернуть из VS2017, это прекрасно работает!

ВОПРОС

  • что мне нужно сделать, чтобы успешно развернуть мой код через Azure Devops

.

Мой файл сборки YAML довольно близок к стандартному,Добавил только CopyFiles @ 2 из-за другого поста SO, предлагающего это:

trigger:
  tags:
    include:
    - slot*
  branches:
    include:
    - dev

pool:
  vmImage: 'VS2017-Win2016'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

name: $(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)

steps:
- task: NuGetToolInstaller@0

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

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@2
  inputs:
    targetFolder: '$(Build.ArtifactStagingDirectory)'    

- task: PublishBuildArtifacts@1
  condition: succeeded() #and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

Второй шаг - создание релиза из артефактов, созданных с помощью файла YAML.

Azure deployment pipeline

Azure deployment pipeline

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Есть две основные проблемы с вашей задачей развертывания.

  1. Как сказал Mohit , вам нужно указать zip-файл веб-проекта, который вы хотите развернуть, а не только каталог, в котором он находится.

  2. Вам необходимо снять флажок «Исключить файлы из папки App_Data».Это предотвратит развертывание веб-заданий с веб-сайтом

    2.1 Если этого не произошло, в Visual Studio необходимо щелкнуть правой кнопкой мыши веб-проект Add> Existing Project as Azj Webjob.Сделайте это для каждого проекта webjob, чтобы он упаковывал веб-задания с веб-сайтом

0 голосов
/ 25 марта 2019

Пожалуйста, добавьте следующую строку в ваш пакет или опцию папки

$(System.DefaultWorkingDirectory)\*.*

При развертывании все файлы будут выбраны.

Также, пожалуйста, обратитесь к следующим способам развертывания webjob в Azure:

  1. Изменение задачи сборки Visual Studio для развертывания веб-задания с помощью FileSystem (аргументы MSBuild: /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\WebJob" /p:DeployDefaultTarget=WebPublish)

  2. Задача "Добавить файлы", чтобы удалить определение для удаления папки bin (Исходная папка: $ (System.DefaultWorkingDirectory) / WebJobVnext / капли / WebJob); Содержание: BIN)

  3. Изменение задачи развертывания службы приложений Azure (

    1. Снимите флажок Публикация с использованием параметра веб-развертывания.
    2. Пакет или папка: $ (System.DefaultWorkingDirectory) / [имя артефакта] / Падение / WebJob)

Надеюсь, это поможет.

...