Skip to Content
Product Information
Author's profile photo Sarah Lendle

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:

 

sap-cloud-sdk:

  1. 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.
  1. 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.
  1. Local Tests – The local tests you’ve configured are executed.
  1. Production Deployment – A productive branch of your project is deployed to the target(s) you have defined.

 

sap-ui5-cf and sap-ui5-neo:

  1. Init – The sources are cloned from GitHub and the environment is set up. This stage is mandatory and executed with every build.
  1. Test – The tests you’ve configured are executed.
  1. Build – Your application is packaged into a deployable archive. This stage is mandatory and executed with every build.
  1. Malware Scan – Your project files are scanned for malware and viruses.
  1. Deploy – Your application is deployed to the defined deploy target(s).
  1. 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!

Assigned tags

      26 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Nicole Weth
      Nicole Weth

      Hello Sarah,

      good overview. One question: Is it planned to support hybrid apps?

      Greetings Nicole

      Author's profile photo Christoph Szymanski
      Christoph Szymanski

      Hello Nicole,

      what exactly would you require wrt to technology and runtimes?

      Christoph

      Author's profile photo Nicole Weth
      Nicole Weth

      Hi Christoph,

      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?

      Author's profile photo Christoph Szymanski
      Christoph Szymanski

      Hi Nicole,

      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.

      Thanks,

      Christoph

      Author's profile photo Martin Blust
      Martin Blust

      Excellent overview

      Author's profile photo Sarah Noack
      Sarah Noack
      Blog Post Author

      Thank you, Martin! ?

      Author's profile photo Basanth Swain
      Basanth Swain

      Nice Overview.

      Author's profile photo Sarah Noack
      Sarah Noack
      Blog Post Author

      Thanks, Basanth Swain!

      Author's profile photo Maximiliano Colman
      Maximiliano Colman

      Any plan to extend it for sap api management?

      Author's profile photo Sarah Noack
      Sarah Noack
      Blog Post Author

      Hi Maximiliano,

      Unfortunately, we haven’t planned to support SAP API Management, yet, but we’ll surely consider your request.

      Best regards,
      Sarah

      Author's profile photo Maximiliano Colman
      Maximiliano Colman

      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.

      Kind Regards.

      Max.

      Author's profile photo Michal Krawczyk
      Michal Krawczyk

      Hi Sahar,

      Great info - thank you! Any plans for SAP CPI over here maybe?

       

      Thank you,

      BR,

      Michal Krawczyk

      Author's profile photo Sarah Noack
      Sarah Noack
      Blog Post Author

      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.

      Best regards,

      Sarah

      Author's profile photo Cara Damm
      Cara Damm

      Thanks Sarah, nice overview!

      Author's profile photo Sarah Noack
      Sarah Noack
      Blog Post Author

      Thank you, Cara Damm!

      Author's profile photo Jacques Otto
      Jacques Otto

      Thanks @Sarah Noack, any indication on if they will support java applications like Java servlets

       

      Author's profile photo Christoph Szymanski
      Christoph Szymanski

      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 🙂

       

      Thanks,

      Christoph

      Author's profile photo Jacques Otto
      Jacques Otto

      Hi Christoph,

      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.

      Author's profile photo Andrew Lunde
      Andrew Lunde

      If you're interested in using the CI/CD service for scheduled builds, check out this code sample.

       

      https://github.com/SAP-samples/mta-job-scheduler

       

      One of the example endpoints will simulate a github webhook.

       

      Let me know if you find it useful (or working, or not).

       

      -Andrew

      Author's profile photo ishaan Gread
      ishaan Gread

      Hi Sarah.

       

      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 -

      ppiper/mta-archive-builder:latest for build purpose. do i need to use some other 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.

      Author's profile photo Sarah Noack
      Sarah Noack
      Blog Post Author

      Hi Ishaan,

      Thanks!

      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

      Best regards,

      Sarah

      Author's profile photo Tobias Mitter
      Tobias Mitter

      Hello Sarah,

      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,

      Tobias

      Author's profile photo Sarah Lendle
      Sarah Lendle
      Blog Post Author

      Hi Tobias,

      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.

      Best regards,

      Sarah

      Author's profile photo Himanshu Sharma
      Himanshu Sharma

      Hello Sarah,
      Thanks for the well detailed blog....  Any plans for extending some services for on-premise ABAP solutions.

      Author's profile photo Yasin Ilkbahar
      Yasin Ilkbahar

      Hi Sarah,

      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..

      Thank you,

      Yasin

       

      [2020-10-27T06:53:56.337Z] Using the config from .pipeline/config.yml file from source repository
      [2020-10-27T06:54:10.220Z] --- Begin library step of: setupCommonPipelineEnvironment ---
      [2020-10-27T06:54:11.107Z] Loading configuration file 'cicdCustomDefaults.yml'
      [2020-10-27T06:54:11.981Z] --- Begin library step of: piperLoadGlobalExtensions ---
      [2020-10-27T06:54:12.171Z] --- End library step of: piperLoadGlobalExtensions ---
      [2020-10-27T06:54:12.241Z] Stashed 3 file(s)
      [2020-10-27T06:54:12.453Z] [setupCommonPipelineEnvironment] Sending telemetry data is disabled.
      [2020-10-27T06:54:12.639Z] ----------------------------------------------------------
      [2020-10-27T06:54:12.654Z] --- An error occurred in the library step: setupCommonPipelineEnvironment
      [2020-10-27T06:54:12.662Z] ----------------------------------------------------------
      [2020-10-27T06:54:12.670Z] 
      [2020-10-27T06:54:12.678Z] The following parameters were available to the step:
      [2020-10-27T06:54:12.687Z] ***
      [2020-10-27T06:54:12.702Z] *** to show step parameters, set verbose:true in general pipeline configuration
      [2020-10-27T06:54:12.710Z] *** WARNING: this may reveal sensitive information. ***
      [2020-10-27T06:54:12.720Z] ***
      [2020-10-27T06:54:12.728Z] 
      [2020-10-27T06:54:12.736Z] The error was:
      [2020-10-27T06:54:12.743Z] ***
      [2020-10-27T06:54:12.751Z] CpsCallableInvocation{methodName=call, call=com.cloudbees.groovy.cps.impl.CpsClosureDef@2e7fd6ae, receiver=org.jenkinsci.plugins.workflow.cps.CpsClosure2@2ec09cbe, arguments=[3]}
      [2020-10-27T06:54:12.759Z] ***
      [2020-10-27T06:54:12.767Z]
      Author's profile photo Thorsten Duda
      Thorsten Duda

      Hi Yasin,

       

      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.

       

      Best regards,

      Thorsten