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.
Getting started
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
pipeline_config.yml
file.
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: 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
createHdiContainer
and
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
🙂