Azure DevOps / 多个项目

Azure DevOps / Multiple projects

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

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

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

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

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

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


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

Here a screenshot of my problem

所以我想在function app env上发布functionApp,但是在发布界面无法选择神器。有什么想法吗?

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

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

然后你应该决定你应该如何进行的策略。例如,您可以上传所有 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

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