【发布时间】:2020-06-30 22:45:29
【问题描述】:
我在 GitHub 中托管我的存储库,并将 Azure DevOps 用于 CI/CD 管道。在使用 GUI CI/CD 屏幕之前,我已经完成了这项工作,没有任何问题。
我注意到的第一件事是使用 YAML 的构建过程似乎使文件结构扁平化。我还在放置文件夹中看到了一些 XML 和 TXT 文件,而不是实际的 JSON 文件。
所以,在放置文件夹中,我看到的是 drop/TestYAML.Parameters.xml,而不是 drop/AzureResourceGroup/azuredeploy.parameters-dev.json
构建和发布任务:
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: 'windows-2019'
variables:
solution: '**\*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- 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)\\" /p:SourceLinkCreate=true'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop'
publishLocation: 'container' # Options: container, filePath
#targetPath: # Required when publishLocation == FilePath
#parallel: false # Optional
#parallelCount: # Optional
#fileCopyOptions: #Optional
已编辑以显示包内容。
在我下载并解压缩文件后,我看到的就是这个。来自两个不同项目的文件被放在同一个文件夹下:
VS 构建日志:
【问题讨论】:
-
显然这不是正确的行为。但是您没有分享一些有用的信息,我们无法提供任何有用的信息。根据您的 YAML,放置文件夹应包含文件
TheProjectName.zip、TheProjectName.SetParameters.xml等。这个文件azuredeploy.parameters-dev.json是否包含在您生成的包中?你会在你的 repo 中分享你的 VSbuild 日志和文件目录结构关于文件azuredeploy.parameters-dev.json吗? -
@LeoLiu-MSFT 我添加了屏幕截图以显示 drop 和 package 内容。 VSBuild 日志太长,无法粘贴到正文中,我没有看到附加单独日志文件的方法。
-
这个问题我已经给出了答案,请检查它是否对你有帮助。
标签: azure-devops yaml