我非常需要帮助来创建我的 yml 构建文件,因为我在任何地方都找不到任何好的教程、示例或其他帮助之王。我总是收到类似的错误:请参阅警告,似乎我的构建工件始终为空。所有步骤都成功,但我无法部署,因为找不到我的文件。愚蠢的。
##[section]Starting: PublishBuildArtifacts
==============================================================================
Task : Publish Build Artifacts
Description : Publish build artifacts to Azure Pipelines/TFS or a file share
Version : 1.142.2
Author : Microsoft Corporation
Help : [More Information](https://go.microsoft.com/fwlink/?LinkID=708390)
==============================================================================
##[warning]Directory '/home/vsts/work/1/a' is empty. Nothing will be added to build artifact 'drop'.
##[section]Finishing: PublishBuildArtifacts
这是我的管道定义
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://learn.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
- master
pool:
vmImage: 'Ubuntu-16.04'
variables:
buildConfiguration: 'Release'
steps:
# - script: dotnet build --configuration $(buildConfiguration)
# displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreInstaller@0
inputs:
version: '2.2.202' # replace this value with the version that you need for your project
- script: dotnet restore
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration Release' # Update this to match your need
- task: PublishBuildArtifacts@1
inputs:
ArtifactName: 'drop'
注意我评论的2行
# - script: dotnet build --configuration $(buildConfiguration)
# displayName: 'dotnet build $(buildConfiguration)'
实际上是默认脚本的一部分。我没有使用默认脚本。我正在按照教程进行操作https://learn.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops https://learn.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops
这也是为什么我不能使用其他项目可用的模板的原因。是因为我正在使用 DevOps 存储库还是因为我的项目有特定设置?我有其他项目,我可以使用图形模板和任务来管理构建和部署。容易多了。
是的,目前对 yaml 管道的帮助似乎有点分散和薄弱。
由于您的项目是ASP网络核心,我认为你缺少的是点网发布任务,之后build
任务和之前PublishArtifacts
:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
但以下是我尝试解决 netcore yaml 管道的挫败感的步骤:
-
您已经浏览了指南的示例任务和片段:构建、测试和部署 .NET Core 应用程序 https://learn.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops ?
-
您是否注意到,您可以单击构建日志来查看管道中每个步骤的详细输出?
-
您已经注意到该任务DotNetCoreCLI@2
相当于跑步dotnet <command>
在您自己的桌面上,以便您可以在某种程度上在本地运行/调试这些任务?
-
I found 提供了一些有用的线索。例如,它告诉我们路径\agent\_work\1\a
可能是$(Build.ArtifactStagingDirectory)
变量,这样可以帮助我模仿本地计算机上的管道。
从逻辑上讲,您的错误消息告诉我们$(Build.ArtifactStagingDirectory)
当管道到达最后一步时为空。 dotnetcore 示例页面向我建议publish
是为 Web 项目填充它的任务。对于其他任何事情,我认为只是dotnet build
任务就够了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)