DEV Community

Discussion on: Azure DevOps Environments - Intro

davux profile image
David Ammouial

Thanks! How do environments relate to the "Release" section? I'm a bit confused here!

n3wt0n profile image
Davide 'CoderDave' Benvegnù Author

Hey, sorry I’m not sure what you mean by “Release section“...

If you talk about the Release menu item under pipelines, that is to access the Classic Release Pipelines. Environments work only for YAML Pipelines.

davux profile image
David Ammouial

Hey Davide! Thanks for responding so quickly!

I meant the "Releases" item in the left navigation menu. I had no idea it was called "Classic Release Pipelines". Why Classic? Is it being deprecated in favor of just multi-stage pipelines? I really like the UI of release pipelines, not only the visual stages but also the possibility to retry a deployment etc.

From what I understand so far:

  • The "Pipelines" and "Environments" items work well together if you mention deployments in your YAML
  • The "Pipelines" and "Releases" items work well together to chain builds with releases
  • The "Releases" and "Environments" items are not compatible.

Is that so? Are there plans to make everything interoperable?

Thread Thread
n3wt0n profile image
Davide 'CoderDave' Benvegnù Author

Hey. It is called "Classic" because it was the only option available until the YAML Pipelines have been released more recently. Both are fully supported and will still be, there is no plan to deprecate any of them. The Classic (aka UI-made) pipelines are easier to start with and provide a graphical way to visualize the flow, while the YAML ones (aka code-based) provide a way to store your CICD definitions in code (with all the advantages deriving from that) and are more flexible, if you will.

Your 3 points are correct, to summarize and extend:

  • Classic Pipelines are of type Build (for CI) and Release (for CD)
  • YAML Pipelines are unified (multi-stage) so they can be used for CI, CD, and/or CICD
  • all the following are supported:
Build Deploy
Classic (Build) Classic (Release)
Classic (Build) YAML
YAML Classic (Release)

This is to say you can concatenate different ways.

While Classic and YAML are mostly at feature parity, there is no plan to make Environments work in Classic. And this is partially because in Classic Release you can define your stages (aka steps) visually and those somehow represent your environments. But it is true that you lose some logs and info in that way, which are otherwise available in Environments.