Sitecore DevOps A-B-C

Back 2 years ago, I had a post Sitecore DevOps 1-2-3. It was mainly based on TFS source control. Now Git repositories becomes more popular and easy adopted from Azure DevOps. I have worked on several projects based on Azure Git repositories. The main flow of Sitecore DevOps pileline remains same. Because of the flexibility of Git flow, branching strategy becomes challenge and most debating area to many organizations. Basically you just need to come up and shape a flow best fit to your team development life cycle.

Here is a branching strategy and Git flow worked well for me.

Git Flow

Starting from a clean Production source code branch, create a Master branch for main stream of development. Then create a Develop branch from Master for integration sandbox. Production, Master and Develop branches are permanent.

Scenario A: Feature A development and Hotfix

  1. Developer creates “A” branch from Master then work on it.
  2. After local development completed, send PR to Develop branch to test in sandbox.
  3. After sandbox test successful, send PR to Master branch.
  4. Create QA branch from Master and make deployment
  5. After QA successful, create UAT branch from QA and make deployment
  6. In UAT, there is issue found, developer work on fix in its own A branch.
  7. At the meantime there is a Hotfix happen, round 1 release is put on hold
  8. Create a Hotfix branch from Production then work on it.
  9. After local development completed, send PR to both Production and Master branches.
  10. Developer finish the fix and send anther PR to Master branch
  11. Abandon the round 1 QA and UAT branches, recreate them for round 2. This time, the QA and UAT branches contain both feature A and Hot fix.
  12. Everything test good in both QA and UAT. Then send UAT PR to Production for release

Scenario 2: Feature B development.

  1. Developer create “B” branch from Master then work on it.
  2. After local development completed, send PR to Develop branch to test in sandbox.
  3. After sandbox test successful, send PR to Master branch.
  4. Create QA branch from Master and make deployment
  5. After QA successful, create UAT branch from QA and make deployment
  6. After UAT successful, it is ready to PR to Production branch for release

So above Scenario A and B are running in parallel on their own paces and procedures. This is how we can achieve continues deployment.

This entry was posted in Sitecore and tagged , , , , , . Bookmark the permalink.

3 Responses to Sitecore DevOps A-B-C

  1. Harish Moolchandani says:

    nice article. Very well thought

  2. Daniel says:

    Is it correct that the hotfix never becomes part of developer A’s feature branch and so also never becomes a part of the develop branch?

    • Wen Chen says:

      Actually in my real work, the Develop branch is often dropped and recreated from Master once a while in order to make sure it is up to date.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s