Azure DevOps, YAML release pipelines?

44,242

Solution 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/

Update: This has been bumped a few times. Checking the comments below is recommended as folks have been providing updates as they find them.

Update

As per comments, this is now possible: https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/. The following is copied and pasted from the article and demonstrates using various stages:

stages:
- stage: Build
  jobs:
  - job: Build
    pool:
      vmImage: 'Ubuntu-16.04'
    continueOnError: true
    steps:
    - script: echo my first build job
- stage: Deploy
  jobs:
    # track deployments on the environment
  - deployment: DeployWeb
    pool:
      vmImage: 'Ubuntu-16.04'
    # creates an environment if it doesn’t exist
    environment: 'smarthotel-dev'
    strategy:
      # default deployment strategy
      runOnce:
        deploy:
          steps:
          - script: echo my first deployment

Solution 2

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:

profile menu

YAML feature

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

UPDATE (2019-05-16): Following Microsoft's "Build 2019", the full YAML experience for both build and deployment should now be possible in the same YAML pipelines file.

Solution 3

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

Solution 4

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.

Share:
44,242
Michael12345
Author by

Michael12345

Software developer and architect. SQL Server, C#, Reporting Services, ASP.NET (also some Classic ASP Gah!) My first commercial language was VB 6.0 so I guess I'm pretty much in the Microsoft sphere.

Updated on December 17, 2020

Comments