We have faced a similar task in our project. When we first approached it, we identified the following core problems with Release automation in Pega platform:
Pega-archive installation process cannot be fully scripted. One of the major problem is that you need to use Designer Studio to customize application settings (DSS, Access Group, Email Account, etc.) No installation scripting -- no pipeline due to manual steps required.
There are certain restrictions on applying DDL instructions contained in Pega-archive to PROD (production level = 5).
Given a rare case that you need to include complex DDL (for example, PL/SQL packages containing database-level business logic) or a DML (for example, for data initialization or migration) to your application distribution package, you won't be able to accomplish this with built-in Pega distribution mechanism.
In our project we were building a complex solution composed of Pega application and a number of auxiliary Java-application to be deployed on the same App server. It was technically impossible to distribute those applications as a part Pega-archive.
Given aforementioned problems, we decided to create our own tool for Release automation in Pega projects.
Earlier we were experiencing problems with poor application quality due to difficulties in covering complex integration layer of our application with unit testing. To solve this problem, we created our own testing framework. For more details, please read this article.
With help of our own Unit testing and Release automation tools we were able to build a pipeline with all steps you’ve described, except for the following:
GUI-based tests (using such tools as Selenium WebDriver or similar). We had to delete this step from pipeline as GUI-based testing of Pega application was not stable enough due to certain difficulties with identifying dynamic GUI elements.
Import Pega-archive to PROD. We cannot do this due to bureaucratic restrictions, instead we upload distribution package to artifactory. When needed we download distribution package of appropriate version from artifactory and send it to customer’s engineers who install it in a 'one-click' manner.
We follow the next steps to enable continuous delivery pipeline in a new project:
Set up a repository in VCS.
Initialize and configure Java-project in this repo. We use Maven to manage project lifecycle, including building application distribution package, launching tests, etc.
Create separate modules for unit tests, build configuration and auxiliary Java-applications (if any).
Configure a pipeline on a build server to checkout project form VCS, run unit tests on Dev, build and deploy to QA, etc.
You are right, this solution is being used to deliver corporate loans applications in one of the largest financial organizations in Russia and Eastern Europe. We started building this application about 2 years ago and have adopted continuous delivery pipeline last year. Currently, application is being developed by three independent teams producing about 4k check-ins per week.
Please find more information about our solution here.
At this moment we are working on building online demo of our solution.