Deploy a single release to parallel/non-prerequisite environments

I’m new here so my apologies if this answer already exists. I’m having trouble finding the answer, possibly due to my unfamiliarity of the necessary terms.

<shameless pandering>First off, great product. I’ve built managed deployment systems before and so far OD has most of what I’d put into one if I were to build one again. Very impressed by the setup and features. The videos have been quite helpful as well.</shameless pandering>
Now onto the problem…

Short version

Is there a way to support deploying single releases to parallel (but separate or prerequisite) environments?
I’ve investigated Channels, but that’s not quite solving my problem yet since Channels seem to require creation of separate discreet releases.

Long version

Here’s my scenario: we have 3 environments relevant to our OD setup:

  • (STAG) Staging - Regression test/final UAT
  • (CM) Content management - psuedo-production but not customer facing
  • (PROD) Production

The environments are set up such that the default life cycle was:
STAG => CM => PROD

This doesn’t quite work. I don’t want CM to be a prerequisite for PROD release. The CM environment is not customer facing, and we sometimes need to deploy pre-release builds to the CM environment, so it can’t be a dependency for Production nor can it have STAG as its own prerequisite.

The preferred release and promotion workflow in OD is:
STAG => PROD

So I changed the default life cycle to reflect the above desired workflow. So far so good.

In order to support deployment to CM, I also set up a CM only life cycle and a corresponding Channel that uses that life cycle. However, this seems clumsy to me. Since it’s a different channel, and a given release specifies a channel, I have to create duplicate releases of the same package version just to release to an “out of band” environment. I treat a “release” as a set of packages regardless of the target environment(s) and deploy them as needed to the appropriate environment(s). Also, since the version attribute of an OD release seems restricted to at most a semantic version, it doesn’t feel right to include a deployment pathway as part of it.

Ideally, I’d like to support this scenario with 2 discreet life cycle/workflows but using single releases:

              / =>  STAG  =>  PROD
(1 Release) -<     (and/or)
              \ =>   CM

Can this be supported and I’m just missing something? Or is this scenario not covered by current functionality?

Hi,

Thanks for getting in touch!

You could setup your lifecycle with 2 phases Pre-Production and Production and configure them like below:

Phase 1: Pre-Production
Environments: STAG and CM
Required to progress: 1 (Click the change link and select 1)
Phase 2: Production
Environments: PROD

Hope that helps!

Thank you and warm regards,
Henrik

Thank you for the suggestion Henrik. I failed to remember that I did try this when I was first setting up the environments. While this is a technically feasible setup, there is a minor problem (unless I’m misunderstanding something). This setup allows for the following workflow:

            / => STAG => PROD
(Release) -<   (or)
            \ => CM => PROD

This then permits the possibility to circumvent the STAG prerequisite for PROD. Since CM is not an environment where we do proper testing, unfortunately this won’t work.

Any other ideas?

Hi Peter,

Would you ever deploy a release to CM and not STAG? If not, could you add the CM environment to your second phase together with your PROD environment?

Other than that, there isn’t a way currently that I can think of to support optional deployment to your CM environment using a single lifecycle/release. We have this UV idea to support optional environments in a lifecycle phase which sounds exactly like what you are after and it is getting some good traction within the community, so you could go and vote on that and when we review our UV list of new features requested it could make it onto our list of items to build into the product.

Thank you and warm regards,
Henrik

Thanks again for the suggestion Henrik.

In our case, yes, we may need to deploy to CM but not STAG. Otherwise, CM would be suited to include alongside the PROD environment in the standard production release phase.

I provided a comment to the UV idea entry with a link to this forum question along with a few votes. It sounds like it would accomplish what I’m trying to do. For now, I think I can settle for creating separate releases for the separate CM channel I have set up until the parallel phrase/environment feature gets added. :wink:

Cheers!