Azure DevOps - 如何查找特定 zip 文件的工作目录路径?

问题描述 投票:0回答:1

我无法弄清楚如何使用 YAML 将我的 API 添加到 Azure 应用服务。

更具体地说,如何设置路径来查找我的 HttpApi.Host.zip 文件夹?

作为参考,我正在关注 ABP Goes Azure 上的 ABP.io 教程。本教程的第 6 步不适用,因为它是一个新的 Azure Dev Ops 项目,并且他们已经取消了“发布”按钮的使用。

我确实提出了拉取请求来通知他们,但尽管他们很忙,我怀疑它是否能很快得到解决。

下面是我的 YAML 设置和显示创建的 Artifact 文件的图片。我在运行结束时设置了此任务。

我尝试执行以下操作以允许它找到 zip 文件:

packageForLinux: '$(System.DefaultWorkingDirectory)/**/HttpApi.Host.zip'
packageForLinux: '$(System.DefaultWorkingDirectory)/**/Navrae.CentralWage.HttpApi.Host.zip'
packageForLinux: '$(System.DefaultWorkingDirectory)/*src/Navrae.CentralWage.HttpApi.Host.zip'
packageForLinux: '$(System.DefaultWorkingDirectory)/*drop/Navrae.CentralWage.HttpApi.Host.zip'

YAML 文件

- task: AzureRmWebAppDeployment@4
  displayName: Push Azure Api
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'Azure Subscription removed'
    appType: 'webApp'
    WebAppName: 'WebAppAi'
    packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip'

这是我生成的工件:我应该尝试定位 Navrae.CentralWage.HttpApi.Host.zip 吗?还是我有这个困惑?

Artifact file structure.

我最终需要使用 Blazor 应用程序做同样的事情,我怀疑一旦我弄清楚这一步,这会更容易!

azure-devops azure-web-app-service azure-pipelines azure-pipelines-yaml abp
1个回答
0
投票

我检查了教程,发现在步骤4中,您构建文件并将其输出到

Build.ArtifactStagingDirectory
文件夹。所以,
Navrae.CentralWage.HttpApi.Host.zip
的路径是
$(Build.ArtifactStagingDirectory)/Navrae.CentralWage.HttpApi.Host.zip

System.DefaultWorkingDirectory
是代理上下载源代码文件的本地路径。例如:
c:\agent_work\1\s

Build.ArtifactStagingDirectory
是代理上的本地路径,任何工件在被推送到目的地之前都会被复制到该路径。例如:
c:\agent_work\1\a

它们是不同的路径,这就是为什么你在

System.DefaultWorkingDirectory
中找不到该文件。

修改后的yaml如下所示:

- task: DotNetCoreCLI@2
  displayName: Dotnet publish
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
    zipAfterPublish: True

- task: PublishBuildArtifacts@1
  displayName: Publish artifact
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
  condition: succeededOrFailed()

- task: AzureRmWebAppDeployment@4
  displayName: Push Azure Api
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'Azure Subscription '
    appType: 'webApp'
    WebAppName: 'WebAppAi'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/Navrae.CentralWage.HttpApi.Host.zip'

顺便说一句,您说“本教程的第 6 步不适用,因为它是一个新的 Azure Dev Ops 项目,并且他们已经取消了“发布”按钮的使用。”

如果您希望恢复“发布”按钮并使用经典发布管道,则可以通过打开组织级别或项目级别的切换来启用经典管道的创建。要在组织级别打开它,请导航至组织设置,然后在管道部分下选择设置。在“常规”部分中,禁用“禁用经典构建和经典发布管道的创建”。要在组织级别进行管理,您需要 项目集合管理员 权限,而对于项目,您需要 项目管理员 权限。

enter image description here 然后你就可以毫无问题地按照教程中的步骤6进行操作了。

© www.soinside.com 2019 - 2024. All rights reserved.