我真的是Azure DevOps的新手,正在尝试为我的项目配置Azure管道。
当前,我的.yml文件如下所示:
trigger:
- my-test-branch
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'dotnet test $(buildConfiguration)'
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'dotnet publish $(buildConfiguration)'
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
displayName: 'publish artifacts'
inputs:
pathtoPublish: '$(build.artifactstagingdirectory)'
我设法从各种来源将其组合在一起,现在可以作为成功的构建管道,因为它可以构建我的项目,运行NUnit测试,并基于此通过或失败。我对此有一些疑问:
PublishBuildArtifacts
任务是做什么的?我以为文件的这一部分是连续交付的部分,会自动将代码发布到我的Web应用程序中,但是这似乎没有发生,并且我意识到我不太了解“发布构建工件”的含义- Azure文档中的解释对我来说也没有太多启发。
从1开始,如何配置连续投放?我有一个Web应用程序,希望我的代码在测试通过后自动部署到那里。
trigger
分支的作用是什么?为了澄清起见,我将解释我的项目的结构:我有一个master
分支,一个develop
分支(分支为主分支)和my-test-branch
分支为开发。如果我希望代码从develop
自动部署到my-test-branch
(如果所有测试均通过),是否可以配置它?还是必须作为请求请求完成?
答案 0 :(得分:2)
PublishBuildArtifacts任务只是将您在构建中创建的任何工件发布为构建的工件。这只是意味着它们在构建信息的工件选项卡中可用,并且其他构建或发行版可以根据需要使用这些工件,这与发布到Azure无关。
如果要进行连续交付,则要开始考虑创建一个使用构建输出并将其推出到Azure(或您希望将其发布到任何其他地方)的发行版。您可以使用multi-stage YAML pipelines在YAML中创建预览版本,也可以查看较旧的可视release pipelines。
您列出的触发器意味着对该分支的任何提交都将导致该管道运行,但是对master或development的任何提交都不会。