Announcement: Out-of-the-box Continuous Delivery Pipeline for SAP Cloud Application Programming Model
Note: This post is part of a series. For a complete overview visit the SAP Cloud SDK Overview.
Disclaimer: The SAP Cloud SDK for Continuous Delivery and its features have been merged into project “Piper”. Therefore we recommend to use the General Purpose Pipeline of project “Piper” instead of the SAP Cloud SDK pipeline. The reasoning for this change, as well as further information on how to adopt the General Purpose Pipeline are described in this guide.
SAP Cloud Application Programming Model enables you to quickly create business applications by allowing you to focus on your business domain. It offers a consistent end-to-end programming model for full-stack development on SAP Cloud Platform.
Today, the SAP Cloud SDK team is glad to announce the availability of an open-source Continuous Delivery Pipeline tailored to SAP Cloud Application Programming Model on SAP Cloud Platform.
One month to go until SAP TechEd 2019. Learn more about the sessions featuring the SAP Cloud SDK in our dedicated blog post.
So, what is this all about? This picture puts everything into context of the broader SAP ecosystem:
As you can see, SAP Cloud SDK is a natural companion for SAP Cloud Application Programming Model applications, providing useful features like tight integration with SAP LoB solutions such as SAP S/4HANA and SAP SuccessFactors.
Up until now, support for the Continuous Delivery was not complete for projects using SAP Cloud Application Programming Model. But this has changed.
Now, you can use a sophisticated CI/CD pipeline without having to write or maintain the pipeline yourself. Rather, you can take advantage of an open-sourced pipeline, maintained by the SAP Cloud SDK team on GitHub.
What’s in for you
So, why should you care? Let’s have a look at the top 3 features SAP Cloud SDK Continuous Delivery Pipeline will give you without any pipeline coding on your end:
- Automated testing
- Run your integration tests on a real SAP HANA instance running on SAP Cloud platform easily
- Built-in support for local tests (unit- and integration) as well as remote tests where your application is deployed to SAP Cloud Platform
- Best practices built-in
- Detection of vulnerable npm dependencies using npm audit, so you don’t ship known security issues by accident
- Static code checks using SpotBugs and pmd, both with default rules and SAP Cloud Platform specific rules for improved code quality
- All SAPUI5 components in your application are automatically checked for best practices, letting you know when something is not yet quite right
- Ensure you only use public API of SAP solutions such as SAP S/4HANA
- Ensure you do resilient network calls, to avoid the fallacies of distributed computing
- Continuous deployment and delivery
- Zero downtime deployment to SAP Cloud Platform, Cloud Foundry Environment
To give you a first impression of what you’re getting, please have a look at this visual representation of the pipeline:
More detailed information on the qualities checked by the pipeline can be found here.
To get started right now, generate a project in SAP Web IDE based on the SAP Cloud Platform Business Application template. Make sure to check the Include support for continuous delivery pipeline of SAP Cloud SDK checkbox, as in this screenshot:
This will generate a project which already includes a
Jenkinsfile, and a
In case you already created a new project without this option, you’ll need to copy and paste two files into the root directory of your project, and commit them to your git repository:
- Note: The file must be named
pipeline_config.yml, despite the different name of the file template
- Note: The file must be named
Note: This only applies to projects created based on the SAP Cloud Platform Business Application template after September 6th 2019. They must comply with the structure which is described here.
If your project uses SAP HANA containers (HDI), you’ll need to configure
cloudFoundry in the
backendIntegrationTests stage in your
pipeline_config.yml file as documented here
Now, you’ll need to push the code to a git repository. This is required because the pipeline gets your code via git. This might be GitHub, or any other cloud or on-premise git solution you have in your company.
Next, start your build server instance. We’ll utilize the so called Cx Server for that, which is developed by SAP’s project “piper”. It is based on popular and battle-tested open source components, such as Jenkins, Docker and Nexus. Thanks to the Cx Server provided life-cycle management scripts, it is ready to work within a few minutes. For a setup guide, please follow the Cx Server operations guide.
Alternatively, you can run SAP Cloud SDK Continuous Delivery Pipeline also on a Kubernetes cluster, if you wish to do so. An in-depth guide can be found in this blog post.
To get the best out of your pipeline, be sure to configure the
productionDeployment stage so your changes are deployed automatically.
In case something does not work the way you expected it, or you have general questions, feel free to ask on answers.sap.com with the tags SAP Cloud Application Programming Model and SAP Cloud SDK or on StackOverflow using the sap-cloud-sdk tag.
If you discovered a bug in the pipeline, please report it on GitHub.
That’s all for this post, happy continuous delivering 🙂