ABAP and CI/CD ? – Part 0 – What is this about

Transport requests, right ? Spending decades with Transport Organizer (SE09…) and import queues (STMS), standard extensions to prevent release with special magic logic. Pretty familiar for all of us. Companies with development guidelines, include variety of rules, what should be the proper description for a transport request. Hunting the right request based on the name. Using external tools to administer business requirements and map corresponding requests. Developers put references in the source code based on predefined rules.

Unforgettable pictures of managing ABAP application/code lifecycle. All steps executed manually or semi-automated way, like consultants writing eMail to developer after successful test, who adds transport request numbers, given order to the eMail body, and adds more recipients to the eMail forwarding to the BASIS Team: “please import this into the production, look and check here is the approval”. This is the accepted way of application lifecycle managament, no one working in the ABAP coding industry questionning this process, and draws along that adminsitrative cost of moving development object through the landscape. Test, releases with helper information in emails, check backs after years, why that happened ? Carrying such weight in mass becomes critical both in terms of quality and cost. Starting development with UI5 and Fiori and working with ABAP in the Cloud, new perspective opened to ABAP developers, seen never before. Tools used to support the application lifecycle in other languages face ABAP developers. Magic of Git and Gerrit to manage UI5 application sources and testing is just small piece of the universe. Me starting my carrer as ABAP developer that was a sudden recognition, bacause I never used source code management in my standalone non-ABAP hobby projects. All what I used before is SAPLink to move Cross-Application and Basis soultions to variety of Application like ECC, SRM, GW from a leading system. Then ABAPGit appeared, and replaced SAPLink with ABAPGit, a non-SAP but powerful solution, obviously missing proper management of BOPF object types. Of course SAP came out with gCTS lateron. I read lot about variety of tools available for the ABAP universe, which appear on variety of channels. Now I want to put the pieces together myself, and try them out myself to gather the required experience, how all that is functioning with onPremise system landscape, not BTP ABAP Environment or S/4HNA Cloud, where you can subscribe for such services. As a beginner I am trying to get relevant definition of this topic. I found 2 easy consumable explanations from experts for dummies like me.

Source: https://www.linkedin.com/pulse/cicd-what-why-important-rob-larter

Source: https://www.redhat.com/en/topics/devops/what-is-ci-cd

So what do they stand for saying as simply as I understood:

  • CI – Continuous Integration: Support of automated building and test of source code changes
  • CD – Continuous Delivery: Support for code release automation
  • Continous Distribution (CD the 2nd): automatic distribution to production, with optional approval workflows
    • Sometimes it is understood as part of Continous Deployment

A pipeline configures the above steps into a flow, to bring your changes into the production on a given route.

Try to match which operation You do, match the above operations fully or partly: Save, Activate, Release, Import.

So lets jump into water with a blog series, to gather some practical experience. I am really excited, because this is something new and modern approach, which hopefully brings more benefits after learning usage of that tools. I would expect that ATC Checks or Code Inspector comes somewhere into the pipeline.


Part 1 – Developers as end users