Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Here is the example pipeline we will talk about at a high level. It is entirely up to the process that you want to implement in your organization, this is just one example.

...

In this pipeline, we will have 4 roles which makes that make up our Teamteam.

...

High-Level Approach

Here is 's the high-level approach , in next section we will show screen shot for the pipeline. In the following sections, we will see a screenshot for each Gate and Step configured.

  • There are 4 stages - Development, Test, QA, and Production.

  • Development stage does not have any Gates, so all projects will deploy right away when a new Release Snapshot is created.

  • Run various types of tests in each Stage and check for results on in the next stage.

  • Test environment is based on Schedule, but QA is based on approval by the QA team to make sure they are ready to accept new code.

  • All steps in the pipeline are automated except there is for a step Manual Step in the QA stage to perform some Manual tests.

  • Production environment has Approval as well as Schedule Gates. Weekend The weekend schedule configured allows for automated deployments at appropriate timeduring non-business hours.

  • Deploy All step Step will notify the appropriate team on Failure in case of a failure in each Stage.

Stages

Development

We are not using any Gates in development the Development environment to allow for continuous deployment in to into that environment. Developers can setup Poll or Schedule based Build trigger set up a Project Trigger on Projects to allow for build and deploys deploy in a continuous manner.

Steps The steps used are for Deploying All Projects and Test All to execute Unit Tests after deployment. Deploy All Step will deploy all projects in Release as per Deploy Priority setup on Release, which will allow for Sequenced deployments.

...

Test

First The first thing we want to do is to check for Tests tests executed in Development environment and move on continue only if Tests the tests were successful. Then we will use Schedule Gate to automatically deploy at Noon everydayevery day. This option allows us to deploy to the Test environment at a predefined time and it will take the latest Snapshot successfully deployed in Development environment.

Steps The steps used are for Deploying All Projects and Test All to execute Integration Tests. Deploy All Step will deploy all projects in Release as per Deploy Priority setup on Release, which will allow for Sequenced deployments.

...

QA

First The first thing we want to do is to check for Tests executed in Test environment and move on only if Tests the tests were successful. Then we will use the Approval Gate by with the QA role, so that allows allowing the QA team to control the promotion of code in to the QA environment as per their testing schedule.

Steps The steps used are for Deploying All Projects and Test All to execute Functional Tests. Deploy All Step will deploy all projects in Release as per Deploy Priority setup on Release, which will allow for Sequenced deployments. Additionally, we will use Manual Step to allow for some manual verification in the QA environment.

...

Production

First The first thing we want to do is to check for Tests executed in the QA environment and move on only if Tests the tests were successful. Then we will use the external ServiceNow Approval Gate overridable by the Operator role, so that allows Operators to control promotion of code in the Production environment if needed. Otherwise, it will be governed by a ServiceNow ticket. Next, we will have Schedule Gate to run steps only on Saturday at 9 PM which would allow for code promotion at predefined downtime.

Steps The steps used are for Deploying All Projects and Test All to execute Smoke Tests. Deploy All Step will deploy all projects in Release as per Deploy Priority setup on Release, which will allow for Sequenced deployments. We will only run simple verification tests (aka Smoke Tests). Additionally, we will use Utility Step to allow for send sending a slack Slack message to Operators. This could easily be a notification step as well to send an email instead.

...