Meet Our New Continuous Integration and Delivery Solution
After months of hard work, we’re proud to present the latest member of our CI/CD family: SAP Cloud Platform Continuous Integration and Delivery.
Our new service on SAP Cloud Platform lets you configure and run predefined CI/CD pipelines. It connects with your GitHub.com repository and tests, builds, and deploys your code changes. In its user interface, you can monitor the status of your builds and view their detailed logs. By detecting errors as quickly as possible, our Continuous Integration & Delivery service helps you prevent integration problems before completing your development.
At the moment, SAP Cloud Platform Continuous Integration and Delivery offers three predefined pipelines for different use cases:
- sap-cloud-sdk – Configure a CI/CD pipeline for the development of applications that follow the SAP Cloud Application Programming Model in the Cloud Foundry environment.
- sap-ui5-cf – Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Cloud Foundry environment.
- sap-ui5-neo – Configure a CI/CD pipeline for the development of SAPUI5/SAP Fiori applications in the Neo environment.
And there’s a lot more to come!
You can configure your pipelines either directly in the user interface of our service (sap-ui5-cf and sap-ui5-neo) or in your source repository on GitHub.com (all three pipelines). Here’s an overview of the stages your pipelines can comprise depending on your configuration:
- Init – The project “Piper” and Cloud SDK pipeline libraries are initialized, the environment is set up, the infrastructure-related configuration is loaded, and the sources are cloned. This stage is mandatory and executed with every build.
- Build and Test – The cloned sources are built, and the resulting artifacts are tested through unit tests. This stage is mandatory and executed with every build.
- Local Tests – The local tests you’ve configured are executed.
- Production Deployment – A productive branch of your project is deployed to the target(s) you have defined.
sap-ui5-cf and sap-ui5-neo:
- Init – The sources are cloned from GitHub and the environment is set up. This stage is mandatory and executed with every build.
- Test – The tests you’ve configured are executed.
- Build – Your application is packaged into a deployable archive. This stage is mandatory and executed with every build.
- Malware Scan – Your project files are scanned for malware and viruses.
- Deploy – Your application is deployed to the defined deploy target(s).
- Upload to Transport Management Service – For a staged development landscape, the archive is uploaded to SAP Cloud Platform Transport Management.
With SAP Cloud Platform Continuous Integration and Delivery, we now have three different CI/CD solutions that differ in their level of flexibility and expertise required for setup and configuration:
- SAP Cloud Platform Continuous Integration and Delivery – The CI/CD service is our offering that needs the least expertise in continuous integration and delivery: You can use our predefined pipelines without having to worry about the underlying infrastructure.
- Project “Piper” – Project “Piper” offers a little bit more flexibility. It’s an open-source project that provides preconfigured Jenkins pipelines, which you can use in your own Jenkins master infrastructure and adapt according to your needs, if necessary. It consists of a shared library, which contains the description of steps, scenarios, and utilities required to use Jenkins pipelines, and a set of Docker images that can be used to implement best practice processes.
- Continuous Integration and Delivery Best Practices Guide – The CI/CD Best Practices Guide is our offering that requires the highest level of expertise but, in return, offers the highest level of flexibility. It provides simple procedures to implement continuous delivery pipelines on any CI/CD stack and demonstrates how to apply the principles of CI/CD to SAP-specific technologies.
For an overview of all solutions we offer for continuous integration and delivery, see SAP Solutions for Continuous Integration and Delivery.
Have you found your ideal CI/CD solution by SAP, yet? Tell us what you think!
good overview. One question: Is it planned to support hybrid apps?
what exactly would you require wrt to technology and runtimes?
we're using UI5 Cordova/Kapsel Apps (Fiori Offline for Android) in Neo environment. Will there be a possibility to use a pipeline to build and deploy these kind of apps?
currently, this is not possible. We're currently prioritizing additional pipeline scenarios and this one will sure be part of the discussion. Unfortunately, I can't give you a date or a roadmap yet.
Thank you, Martin! ?
Thanks, Basanth Swain!
Any plan to extend it for sap api management?
Unfortunately, we haven’t planned to support SAP API Management, yet, but we’ll surely consider your request.
Hi Sarah, thank you for your feedback, but not using CI CD is one of common anti-patterns for API development, I strongly recommend to add it in the roadmap.
Great info - thank you! Any plans for SAP CPI over here maybe?
Hi Michal Krawczyk,
I’m glad that you like it! Yes, we’re currently working on supporting SAP CPI, but unfortunately, we don’t have a specific timeline, yet.
Thanks Sarah, nice overview!
Thank you, Cara Damm!
Thanks @Sarah Noack, any indication on if they will support java applications like Java servlets
Hi Jacques Otto
what exactly would you require, maven build + jar/war deployment to cf? What's your use case?
We're always eager to learn from your real-life scenarios out there 🙂
So basically we have Java servlets that are currently running on Cloud Platform Neo. Will probably move this to CF in near future. Thus the use case would be to automate the build and deployment currently we either manually deploy from Eclipse into the target subaccount on Neo, or we use a pipeline created on Azure Devops.
Would be great if this could be automated from SAP CP.
If you're interested in using the CI/CD service for scheduled builds, check out this code sample.
One of the example endpoints will simulate a github webhook.
Let me know if you find it useful (or working, or not).
Nice Blog. Thank you for sharing.
I am using docker images to setup build and deployment for UI5 application on cloud foundry within Azure DevOps.
For UI project - mta.yml file - contains builder as CUSTOM. when we run with existing docker image - we get an error that Custom builder is not found- this should be the case if we are not using latest Cloud MTA Build Tool to build the MTAR.
I am using the image -
changing builder from custom to npm solves that issue in mta.yml file.
however, i see that changes doesn't reflect back properly on application in CF.
Please switch to the MBT tool. That’s the default as the old MTA tool is deprecated. See: https://sap.github.io/cloud-mta-build-tool/
Docker image: devxci/mbtci
thanks for this great blog. In our company we have our own git (Bitbucket) and I don’t really know lots of companies using github for their in-house private projects.
It seems we can’t use the ci/cd pipelines due to this restriction (only github). I thought I might still be able to use our Bitbucket (in the end it is git), but all Git operations (i.e git clone/push/…) in our Bitbucket are only possible with SSH and with IP-Whitelisting and not HTTPS. Also according to documentation it says to use a credential with Basic Authentication, nevertheless credentials with OAuth are still shows. We might later not have this restriction any more, so https might be possible in the future. Will somehting other than Basic Authentication work?
Will there be a more flexible solution in the future where we can also use other services than github and also some SSH access additional to https? We would love to try these standard pipelines.
Thanks and best regards,
Unfortunately, SSH is not on our roadmap. May I ask why you're using it?
We’re working on our Bitbucket support. At the moment, you can already connect to Bitbucket (cloud) through HTTPs. Webhooks, however, are still only available for GitHub.
For GitHub, we support personal access tokens.
Thanks for the well detailed blog.... Any plans for extending some services for on-premise ABAP solutions.
First of all I would like to thank you for this blog entry, I am very happy to see that SAP is continiously improving the SAP Cloud Platform services.
During the setup of CI/CD pipeline I am getting an error message it says that sending telemetry is disabled (see below). I am using the jobeditor and there is no option to activate or deactivate it.
Also in the troubleshooting page I was not able to find some details regarding this problem.
Could you please help? I am using bitbucket..
the telemetry data log entry is just an information. It is switch off in the service.
Your problem was an Cps error when using Bitbucket, but that should be fixed already in the Service.
Brilliant overview on CI/CD! Could provide more clarity on the capabilities.
I happened to use piper commands and run it in GitLab pipeline, and I could successfully deploy an iflow in SAP CPI from GitLab.
But I was wondering if we could completely sync SAP CPI iflows with GitLab and any change in CPI would reflect on our GitLab repository.