VSTS выпускает трубопровод can not find выпущенный артефакт

55
5

Я пытаюсь настроить CI/CD без большой удачи. Моя цель - создать веб-проект.net через VSTS и развернуть его в приложении AWS Beanstalk.

Где я до сих пор?

Создал файл vsts-ci.yml следующим образом:

# ASP.NET
# Build and test ASP.NET web applications.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/vsts/pipelines/apps/aspnet/build-aspnet-4

pool:
vmImage: 'VS2017-Win2016'

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

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: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'

И у меня есть определение сборки, как показано ниже:

build

С этим мой первый шаг build работает правильно. Btw Agent pool - Hosted VS2017.

Затем я создал конвейер выпуска, как показано ниже:

release pipeline

И как задачи этапа 1 (часть, которая выполняется после шага артефакта), у меня есть следующее:

Release

Я подключил сборку к фиксации ведущего ветки и подключил выпуск к успешной сборке, эти срабатывания работают правильно. Хотя это терпит неудачу. Проблема вызвана тем, что файлы артефакта не найдены, вероятно, из-за неправильных входных данных пути. Но я не знаю правильных версий.

После завершения сборки он утверждает, что создал .zip файл, содержащий опубликованную версию:

build-success

Но после этого релиз заканчивается неудачей, только если не сказать такого файла. Я пробовал много путей в поле " Web Deploy Archive, но ни один из них не мог найти zip файл.

failed-release

Задача powershell, которую вы видите, я создал для проверки путей и того, что у них есть, и они в основном пусты.

Одна интересная вещь, которую я понял, заключается в том, что build создает файлы в D:\a\1\a но задачи выпуска пытаются просмотреть D:\a\r1\a когда я суффикс в поле " Web Deploy Archive с помощью $(System.defaultWorkingDirectory) и $(Build.artifactStagingDirectory).

Еще одна особенность заключается в том, что при выпуске Download artifact stage он Linked artifact count: 0. Который я ожидал бы быть чем-то другим.

enter image description here

Что я здесь делаю неправильно? Если кто-то может направить меня корыто, я был бы признателен.

Обновление: я добавил "Опубликовать артефакт: падение"

Когда Path to publish - "$ (System.DefaultWorkingDirectory)/project-2-codes.zip"

Публикация артефактов сборки не удалась с ошибкой: не найден PathtoPublish: D:\a\r1\a\project-2-codes.zip

Когда " Path to publish - "$ (System.DefaultWorkingDirectory)",

Публикация артефактов сборки не удалась с ошибкой: не найден PathtoPublish: D:\a\r1\a\$ (Build.ArtifactStagingDirectory)

спросил(а) 2018-09-02T22:08:00+03:00 1 год, 10 месяцев назад
1
Решение
56

После того, как большая часть головы ударила по стенам, я обнаружил проблему.

Я неправильно создавал определение сборки. Я использовал мастер по умолчанию, не заметив пользовательский конструктор (я не думаю, что текст рядом со ссылкой и имя ссылки делает любой смысл).

build creation page

И это создавало почти пустое определение сборки. Я даже не понял, что он делает. Теперь, используя visual designer я могу на самом деле выбрать шаблон определения buil со всеми требуемыми задачами сборки. После создания сборки правильно все работало просто красиво.

Вот определение сборки, которое я придумал:

build

И вот задача развертывания beanstalk:

deployment

ответил(а) 2018-09-05T17:04:00+03:00 1 год, 10 месяцев назад
40

Вы должны публиковать свои сборки как артефакт. Используйте задачу Publish Artifact.

ответил(а) 2018-09-03T01:59:00+03:00 1 год, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема