engswee / flashpipe

The CI/CD Companion for SAP Integration Suite
https://engswee.github.io/flashpipe/
Apache License 2.0
32 stars 11 forks source link

Version increments, package creation, repository best practises etc. #11

Closed micsafi closed 2 years ago

micsafi commented 2 years ago

Hi @engswee! Thanks for sharing this great tool Github, it really provides much needed automation capabilities for SAP Cloud Integration platform.

Some functional questions:

  1. Is it possible to auto-increment artifact version when deploying new artifact version to CPI? Of course I can also do this via some scripting in the pipeline, but can Flashpipe handle this? Would it also possible to update the version description with some dynamic messages, like Git commit ID and commit comment.
  2. Does Flashpipe create the the target package automatically if it doesn’t exist? If yes, where is package description taken from?
  3. In your experience, what is the best practise for Git repository setup and structure? One repo per artefact, per package or even multiple packages in the same repo?
engswee commented 2 years ago

Hi @micsafi

Sorry for the delayed response as I was away for a while. Regarding your questions:

  1. In earlier versions, it was possible to auto-increment the version. However, after using FlashPipe in various projects, I found the approach of using auto-incrementing didn't work that well (not related to the technical implementation), so I decided to deprecate it. The idea is to handle the version number in the MANIFEST.MF file - either the developer saves a new version when using the Web UI and then syncing it to Git, or directly updating it in the Git repo. Updating the description with Git commit details is not possible currently as the API provided by SAP does not support it.
  2. Yes, package is created automatically. To simplify things, the description is the same as the package ID.
  3. No real best practice as it really depends on a case-to-case basis, but I would avoid one repo per artefact as that is too granular. Personally, I'd go for all artefacts (across packages) that belong functionally together.
micsafi commented 2 years ago

Hi @engswee

Thanks for the answers.

Is there a way to deploy value mappings via Flashpipe? As far I know, Value mappings are considered artefacts with same design time and deploy time concepts as iFlows so would it possible to deploy them via same APIs?

This would be particurarly handy when your values in a Value mapping differ between environments.

engswee commented 2 years ago

Hi @micsafi

Unfortunately, SAP does not currently provide all the required public APIs to make it meaningful to incorporate value mappings into FlashPipe. Integration Flows are currently the only artefact type that supports the full range of functions like create, update, delete and read via public APIs. Value Mappings do not.

You can refer to the APIs here https://api.sap.com/api/IntegrationContent/resource

micsafi commented 2 years ago

Hmm, what specific operation is missing for Value Mappings?

In the current APIs you can already get and update Value Mapping design time artefacts and deploy them as well. In my view, that would cover the needs of most CI/CD pipelines.

SirtiB commented 2 years ago

Hey @engswee , What is about script collections? There is a dedicated API for uploading these. Is this covered by flashpipe as well?

engswee commented 2 years ago

Hi @SirtiB, The APIs for Script Collection was only added very recently. This is not supported by FlashPipe at the moment. Similar to the APIs for Value Mapping, it does not have the full range of functions required (create, update, download, delete and deploy). IMO, it won't be meaningful to include partial support for these artefact types as it will still require manual steps when handling them.

engswee commented 1 year ago

@micsafi & @SirtiB - both of you were previously interested in dealing with script collection and value mapping. Support for message mapping, script collection and value mapping has now been added in release 3.0.0

You can find out more in this public announcement of the release