我正在尝试设置CI / CD,但运气不佳。我的目标是通过VSTS
构建一个.net Web项目并将其部署到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
可以正确运行。 Btw代理程序池为Hosted VS2017
。
然后我创建了一个如下所示的发布管道:
作为第1阶段任务(在工件步骤之后运行的部分),我有以下内容:
我已经将构建挂接到master分支提交,并将发布挂接到成功构建,这些触发可以正常工作。虽然失败了。该问题是由于找不到路径文件而导致的找不到工件文件引起的。但是我不知道正确的版本。
构建完成后,它声称已创建一个包含发布版本的.zip
文件:
但是在此之后,发布失败,只是说不出这样的文件。我在Web Deploy Archive
字段中尝试了许多路径,但是没有一个可以找到该zip文件。
您看到的powershell任务是我创建的,用于检查路径以及它们中包含的内容,并且它们大多是空的。
我想到的一件有趣的事是,构建将文件放在D:\a\1\a
中,但是当我在D:\a\r1\a
后缀Web Deploy Archive
和{时,发布任务尝试查看$(System.defaultWorkingDirectory)
{1}}。
另一个奇怪的是,在发布$(Build.artifactStagingDirectory)
阶段,它表示Download artifact
。我希望是其他东西。
我在这里做错了什么?如果有人可以引导我走出低谷,我将不胜感激。
更新:我添加了“发布工件:放置”
当Linked artifact count: 0
为“ $(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)