Azure DevOps, YAML release pipelines?

2019-01-24 00:21发布

问题:

I am following this process to create a YAML build pipeline for a .NET Core Web API project:

https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-yaml?view=vsts

When it comes to releasing it, I note that the (recently renamed) Azure DevOps doesn't seem to support YAML for defining release pipelines. However, I can see that deployment tasks have been defined eg:

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment?view=vsts

Are we expecting an upgrade to the release pipelines functionality to support YAML and, if so, when?

回答1:

At the time of writing this response the features timeline reflects yaml releases are coming 2018 Q3.

https://docs.microsoft.com/en-us/azure/devops/release-notes/



回答2:

I am in the middle of doing something like this right this very moment, but I am using the current REST APIs. What I am doing something similar to what I documented here (How do you import a release definition in VSTS?). Basically I am saving a templated JSON Release Pipeline file into the source code repository with variable placeholders, and a version number embedded. A then have a PowerShell script that is calling the Azure DevOps (that's a long word, I preferred typing VSTS, maybe I'll start typing AD)

  • REST APIs to check of the Release Pipeline exists - works
  • Create if it doesn't exist - works
  • Compare embedded versions and update and if necessary (I'm stuck here, but I'll solve it, returning error that pipeline being updated hasn't changed even though I've changed it.)

I want this to executing during the Build pipeline so that I no longer have to modify lots of similar Release pipelines manually. I would prefer this to be a YAML file as well, but this is what I have today. I hope this helps.



回答3:

The Product Team is working on it. You can track the update through Release notes.



回答4:

Pipelines are made of one or more jobs and may include resources and variables. Jobs are made of one or more steps plus some job-specific data. Steps can be tasks, scripts, or references to external templates. This is reflected in the structure of the YAML file. Please visit here for details



回答5:

YAML build pipeline creation experience is in preview. (today is 2018-12-04)

YAML for release pipelines seems to be a ways off still: 2019 Q2

Preview features can be enabled from your profile like this:

EDIT: As nullforce points out in comments, this only enables a YAML experience for build pipelines and not release pipelines.