In my previous blog posts, I covered gCTS Set up for
Source and
Target System and we laid the stepping stones for our CI and CD Set up. In this blog post I will be covering our journey while trying out CI and CD Set Up as a PoC for customer using SAP predelivered pipelines in
Project Piper. For fast deployment, we went ahead with SAP preconfigured pipelines whereas you can create your own Pipelines too but that will require writing logic yourself.
Prerequisites
- Git Platform
- S/4HANA 2020 Systems Dev->Q->Pre prod->Prod
- Linux system; install docker and pull docker image of cx-server. Execute cx-server command ./cx-server start. This will install Jenkins and configures Piper OS Libraries
For our PoC, we tried Windows 16 server before falling back to Linux as we landed into issues in installing Docker on Windows 16 server and then there is not much of documentation around it. SAP documentation also states that you may land into issues with Windows 16 server.
Once the installations were done ;we followed the configurations listed
here; for configuring the pipelines . As of today, only 5 below listed Pipelines are provided by SAP for On Premise system
Once the Pipelines were configured; you can automate them to trigger as and when Commit happens. All these pipelines are triggered after the change has been committed to Git from the Development system.
We only faced one issue with
gctsDeploy pipeline; we were getting dump in S/4HANA system as we didn't pass the parameters rightly in config.yaml as per
Piper . We were passing commit and scope with the values as given in link
commit: 'commit'
scope : 'scope'
And we were getting below dump :
We removed both the above-mentioned parameters from our
config.yaml file and the pipeline worked as expected. Commit and Scope if required to be passed should have :
commit - The commit to which the repository must be set after the creation and clone of the repository. Its value and should be a commit id already existing in the remote repository. This can be left empty if no change of commit is required.
scope - Scope of the deploy. The default is the entire commit would be imported into the system. Leaving the scope empty would follow the default behavior.
Below listed limitations are observed while using SAP preconfigured Pipelines for :
- Merge: Currently we don't have any pipeline for Merge; so Merge need to be done manually for pushing the changes to Prod.
- Commit: By default, Commit to Git Repository is performed when Transport request is released in Dev system; but you can also create a commit in Git when task is released. Refer here
- ATC: ATC is not supported for On Premise currently in SAP predelivered pipelines. Although you can use ABAP CI Plugin for executing ATC but that executes ATC over packages and not Transport request .
Good start to CI and CD framework in S/4HANA where customers are now evaluating its benefits wrt their landscape ; looking forward to more features in CI and CD framework in coming days. I will share the use cases that we implemented and the challenges we faced in upcoming Blog posts.
Regards
Taranam