Technology Blog Posts by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
SarahLendle
Advisor
Advisor
8,266
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!
31 Comments
Nicole
Explorer
0 Kudos
Hello Sarah,

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

Greetings Nicole
krzys
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hello Nicole,

what exactly would you require wrt to technology and runtimes?

Christoph
Nicole
Explorer
0 Kudos
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?
martin_blust
Product and Topic Expert
Product and Topic Expert
Excellent overview
SarahLendle
Advisor
Advisor
0 Kudos
Thank you, Martin! ?
BasanthSwain
Participant
Nice Overview.
krzys
Product and Topic Expert
Product and Topic Expert
0 Kudos
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
SarahLendle
Advisor
Advisor
0 Kudos
Thanks, basanthswain!
maxi1555
Contributor
Any plan to extend it for sap api management?
Hi Sahar,

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

 

Thank you,

BR,

Michal Krawczyk
former_member275509
Discoverer
Thanks Sarah, nice overview!
SarahLendle
Advisor
Advisor
0 Kudos
Hi maximilianocolman,

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

Best regards,
Sarah
SarahLendle
Advisor
Advisor
0 Kudos
Hi michalkrawczyk,

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
SarahLendle
Advisor
Advisor
0 Kudos
Thank you, cara.damm!
maxi1555
Contributor
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.
jacqueso
Explorer
Thanks @Sarah Noack, any indication on if they will support java applications like Java servlets

 
krzys
Product and Topic Expert
Product and Topic Expert
Hi jacquesotto

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
andrew_lunde
Active Participant
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
jacqueso
Explorer
0 Kudos
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.
IG1
Active Participant
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.
SarahLendle
Advisor
Advisor
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
tobias_mitter2
Explorer

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

himanshush137
Explorer
0 Kudos
Hello Sarah,
Thanks for the well detailed blog....  Any plans for extending some services for on-premise ABAP solutions.
SarahLendle
Advisor
Advisor
0 Kudos
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
yilkba2s
Explorer

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]
thorsten_duda
Advisor
Advisor
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
former_member791832
Participant
0 Kudos
Hi Sarah,

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.

 

Thanks,

Ramya
JaySchwendemann
Active Contributor
0 Kudos
Hi sarah_n

is Bitbucket support now enhanced? I see https://roadmaps.sap.com/board?PRODUCT=73554900100800001771&range=2020Q3-2023Q3#;INNO=000D3ABE772D1E... on the roadmap. Is this already delivered?

Cheers

 
SarahLendle
Advisor
Advisor
Hi Jens,

Yes, you can now configure a webhook between a Bitbucket Cloud repository and our service. For details, please have a look at Add a Webhook in Bitbucket Cloud | SAP Help Portal.

Best regards,
Sarah
fernandog93
Discoverer
0 Kudos
Very useful, thanks!!
LindaSieb
Product and Topic Expert
Product and Topic Expert
0 Kudos
This is a much later response, but I'm reading through the comments of this old blog post and don't want to miss sharing that we have a pipeline called "SAP Fiori for the ABAP Platform" now that is "for the development of SAPUI5/SAP Fiori applications for the ABAP platform". Hope that's helpful!