continuous-integration - VSTS 发布管道找不到已发布的工件
问题描述
我正在尝试设置 CI/CD,但运气不佳。我的目标是构建一个 .net web 项目槽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
运行正确。顺便说一句,代理池是Hosted VS2017
.
然后我创建了一个发布管道,如下所示:
作为第 1 阶段的任务(在工件步骤之后运行的部分),我有以下内容:
我已将构建挂钩到主分支提交,并将发布挂钩到成功构建,这些触发正常工作。虽然失败了。问题是由于路径输入错误而未找到工件文件引起的。但我不知道正确的版本。
构建完成后,它声称它创建了一个.zip
包含已发布版本的文件:
但在此之后,发布失败,只能说没有这样的文件。我在Web Deploy Archive
现场尝试了许多路径,但没有一个可以找到 zip 文件。
您看到的 powershell 任务,我创建它是为了检查路径,以及它们在其中的内容,而且它们大多是空的。
我想到的一件有趣的事情是,构建将文件放入其中,D:\a\1\a
但发布任务会尝试D:\a\r1\a
在我使用and为Web Deploy Archive
字段添加后缀时进行调查。$(System.defaultWorkingDirectory)
$(Build.artifactStagingDirectory)
另一个奇怪的事情是,在发布Download artifact
阶段,它说Linked artifact count: 0
。我希望是别的东西。
我在这里做错了什么?如果有人可以指导我,我将不胜感激。
更新:我添加了“发布工件:drop”
什么时候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)
解决方案
推荐阅读
- php - 使用数据表时,具有一列复选框的表格显示被隐藏
- amazon-ecs - 如何从 Docker 实例内部将多个日志流式传输到 AWS CloudWatch?
- python - 根据 'key=value' 项将 pandas 列拆分为多个列
- jetbrains-ide - 如何在 JetBrains Marketplace 准入期间配置插件验证程序?
- python - 尽管安装了两个模型,但没有名为“pandas”、“mysql”的模块
- installshield - 如何在 InstallShield 脚本中读取命令行参数
- .net - 在 .NET Framework 应用程序中为 .NET Core 应用程序创建虚拟目录
- c# - Polly 重试并不总是捕获 HttpRequestException
- git - 停止 git 更新远程文件
- c - C char 数组 (char*) 的 JSON 序列化