【问题标题】:VSTS release pipeline cant find released artifactVSTS 发布管道找不到已发布的工件
【发布时间】:2018-09-02 19:08:40
【问题描述】:

我正在尝试设置 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 运行正常。顺便说一句,代理池是Hosted VS2017

然后我创建了一个发布管道,如下所示:

作为第 1 阶段的任务(在工件步骤之后运行的部分),我有以下内容:

我已将构建挂钩到主分支提交,并将发布挂钩到成功构建,这些触发正常工作。虽然失败了。问题是由于路径输入错误而未找到工件文件引起的。但我不知道正确的版本。

构建完成后,它声称它创建了一个包含已发布版本的.zip 文件:

但在此之后,发布失败,只能说没有这样的文件。我在Web Deploy Archive 字段尝试了许多路径,但没有一个可以找到 zip 文件。

你看到的 powershell 任务,我创建它是为了检查路径,以及它们在其中的内容,它们大多是空的。

我想到的一件有趣的事情是,构建将文件放在D:\a\1\a 中,但当我在Web Deploy Archive 字段后缀$(System.defaultWorkingDirectory)$(Build.artifactStagingDirectory) 时,发布任务会尝试查看D:\a\r1\a

另一个奇怪的事情是在发布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)

【问题讨论】:

  • 您在截取屏幕截图后确实将任务添加到构建定义中,对吧?您能否描述一下您是如何配置构建任务或发布构建日志的?

标签: continuous-integration azure-devops azure-pipelines continuous-deployment azure-pipelines-release-pipeline


【解决方案1】:

在多次撞墙之后,我发现了问题。

我创建的构建定义都错了。我使用了默认的向导,没有注意到自定义设计器(我认为链接旁边的文本和链接的名称没有任何意义)。

它正在创建一个几乎空的构建定义。我什至不明白它在做什么。现在,使用visual designer,我实际上可以选择一个包含所有必需构建任务的构建定义模板。正确创建构建后,一切正常。

这是我提出的构建定义:

这是 beanstalk 部署任务:

【讨论】:

  • 谢谢!我在同一问题上苦苦挣扎了几天,无法理解发生了什么。您用“使用视觉设计师”强调的内容引导了我正确的方式。因为我仍然想使用 YAML 模板,所以我按照你说的做了,然后选择了“发布工件”,然后在右侧的所有字段上方,我点击了“查看 YAML”链接——它给了我需要的 sn-p用于修复我的原始 YAML 文件。
【解决方案2】:

您需要将构建输出发布为工件。使用Publish Artifact 任务。

【讨论】:

  • 试过了,还是说“Not found PathToPublish”。请检查更新的问题。
  • @TolgaEvcimen 只需将Path to publish 设置为$(build.artifactstagingdirectory) 并再试一次。
猜你喜欢
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多