Set up FlashPipe easily with GitHub Actions

Views: 332

Introduction

With the release of version v3.0.0 of FlashPipe, it comes with a native CLI in a self-contained Docker image that makes it easy to incorporate into CI/CD pipelines.

On top of that, it now comes with companion action engswee/flashpipe-action that makes it even easier to use on GitHub Actions. This is great news for those who are already using GitHub as the platform of choice for their repositories.

This post provides a glimpse into the simplified approach provided by the action that enables anyone to set up FlashPipe easily.


Example Actions

The companion action engswee/flashpipe-action works only when executed within a FlashPipe container. Following is a YAML snippet to use the latest FlashPipe Docker image in a GitHub Actions workflow.

jobs:
  update:
    runs-on: ubuntu-latest
    container:
      image: engswee/flashpipe:latest

Sync artifacts from tenant to GitHub

One of the key elements of incorporating CI/CD into the development workflow for SAP Integration Suite is to store the content of artifacts in a Git repository.

Using action engswee/flashpipe-action/sync@v1, this can be achieved by just specifying the Integration Package ID (besides the details and credentials for the tenant).

- uses: engswee/flashpipe-action/sync@v1
  with:
    tmn-host: dummy.hana.ondemand.com
    oauth-host: dummy.authentication.eu10.hana.ondemand.com
    oauth-clientid: ${{ secrets.DEV_CLIENT_ID }}
    oauth-clientsecret: ${{ secrets.DEV_CLIENT_SECRET }}
    package-id: FlashPipeDemo

The following image shows an execution log of the sync action.

Upload artifacts from GitHub to tenant

Conversely, another integral part of the development workflow is to update the artifacts back to the tenant, or a different tenant.

By providing the artifact & package details and directory location, action engswee/flashpipe-action/update/artifact@v1 will compare the contents from the GitHub repository against the tenant and perform an upload or update accordingly.

- uses: engswee/flashpipe-action/update/artifact@v1
  with:
    tmn-host: dummy.hana.ondemand.com
    oauth-host: dummy.authentication.eu10.hana.ondemand.com
    oauth-clientid: ${{ secrets.DEV_CLIENT_ID }}
    oauth-clientsecret: ${{ secrets.DEV_CLIENT_SECRET }}
    artifact-id: GroovyXMLTransformation
    package-id: FlashPipeDemo
    dir-artifact-relative: Groovy XML Transformation

Below is an example of an execution log of the update action. In this case, there were no differences, so the tenant did not require an update.

Update 10 Oct 2023 – with release v3.1.0, the action engswee/flashpipe-action/sync@v1 also handles updating multiple artifacts from GitHub to tenant. The difference is that although action engswee/flashpipe-action/update/artifact@v1 can only update one artifact at a time, it is more configurable, e.g. specifying a different configuration file or conversion of the script collection references.

Deploy artifact to runtime

Lastly, by specifying the artifact ID, action engswee/flashpipe-action/deploy@v1 enables the deployment of the designtime artifact to the runtime of the tenant.

- uses: engswee/flashpipe-action/deploy@v1
  with:
    tmn-host: dummy.hana.ondemand.com
    oauth-host: dummy.authentication.eu10.hana.ondemand.com
    oauth-clientid: ${{ secrets.DEV_CLIENT_ID }}
    oauth-clientsecret: ${{ secrets.DEV_CLIENT_SECRET }}
    artifact-ids: GroovyXMLTransformation

The image below shows an execution log of the deploy action.


Summary

FlashPipe is designed with ease-of-use in mind. With the introduction of the companion action specially built for Github Actions, it is now incredibly easy to get started on implementing CI/CD for your SAP Integration Suite developments.

If you have not already tried FlashPipe, head over to its Getting Started documentation and have a go at it today!

Go, Go, FlashPipe!


Comments

Feel free to provide your comment, feedback and/or opinion here.

About the Author