繁体   English   中英

Azure DevOps / 多个项目

[英]Azure DevOps / Multiple projects

我正在尝试使用 Azure DevOps 准备好 CICD。 我有一个很大的回购协议,其中包含 1 个 Web 应用程序、2 个 azure 函数和其他一些用作库的项目。 所以我要在不同的环境中部署 3 个项目。

在这些项目的根目录下,我只有 1.sln 文件。

我能够构建所有项目,但我不知道如何获取 1 个特定的构建项目(工件?)并进行部署。

- task: VSBuild@1
  inputs:
    solution: 'allproject.sln'
- task: PublishBuildArtifacts@1

我尝试了这个,并且我能够在我的发布管道上部署工件,但是当我只构建了一个项目时。 在这里我不知道如何进行。

拆分我的项目并为每个项目创建解决方案是可能的,但如果可能的话,我会避免这种情况。 使用 MSBuild 也是可能的,但我真的想避免它,因为它很复杂(在管道维护方面,我们是一个小团队)。


在 GeralexGR 出色的回答之后,我解决了一些问题,但我无法解决工件的发布。

这是我的问题的截图

所以想在function app env上发布functionApp,但是在发布界面无法选择神器。 任何的想法?

我已经根据您的描述创建了一个解决方案。 在此设置中,我在 functions 文件夹中包括了一个 consoleApp 和两个函数应用程序,如下所示。

项目层级

您可以像在 visual studio 上那样构建您的项目,每个项目都将包含 output bin 和 obj 文件夹以及工件。

构建 azure devops

然后你应该决定你应该如何进行的策略。 例如,您可以上传所有 ArtifactsStagingDirectory 或单独的每个文件夹。

YAML 流水线:

trigger:
- none

pr: none 

pool:
  vmImage: ubuntu-latest

steps:

- task: UseDotNet@2
  inputs:
    packageType: sdk
    version: '6.0.x'
    includePreviewVersions: true
    
- task: DotNetCoreCLI@2
  displayName: Building .NET project
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    arguments: '--configuration debug'

定位结构的测试步骤:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      # Write your PowerShell commands here.
      
      cd "$(Pipeline.Workspace)/s"
      ls

在函数和控制台应用程序项目中,您可以找到构建工件。

测试步骤

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM