/flashpipe-action

Companion GitHub Action for FlashPipe

Apache License 2.0Apache-2.0

FlashPipe Logo

Companion GitHub Action for FlashPipe

This action provides a simplified approach for using FlashPipe in GitHub Actions workflows.

It provides the following actions which execute their corresponding FlashPipe CLI command.

CLI command GitHub action
update artifact engswee/flashpipe-action/update/artifact@v1
update package engswee/flashpipe-action/update/package@v1
deploy engswee/flashpipe-action/deploy@v1
sync engswee/flashpipe-action/sync@v1
sync apim engswee/flashpipe-action/sync/apim@v1
snapshot engswee/flashpipe-action/snapshot@v1

Usage

These actions are only valid when the workflow is executed in a FlashPipe container.

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

update artifact

- uses: engswee/flashpipe-action/update/artifact@v1
  with:
    # Host for tenant management node of Cloud Integration
    # Required
    tmn-host:

    # User ID for Basic Auth
    # Required (for Basic Auth)
    tmn-userid:

    # Password for Basic Auth
    # Required (for Basic Auth)
    tmn-password:

    # Host for OAuth token server
    # Required (for OAuth)
    oauth-host:

    # Client ID for using OAuth
    # Required (for OAuth)
    oauth-clientid:

    # Client Secret for using OAuth
    # Required (for OAuth)
    oauth-clientsecret:

    # Path for OAuth token server
    # Optional
    # Default: /oauth/token
    oauth-path:

    # ID of artifact
    # Required
    artifact-id: 

    # Name of artifact
    # Optional
    # Default: Uses value of artifact-id when not provided
    artifact-name: 

    # ID of Integration Package
    # Required
    package-id: 

    # Name of Integration Package
    # Optional
    # Default: Uses value of package-id when not provided
    package-name:

    # Directory containing contents of designtime artifact - relative to root of Git repository
    # Required
    dir-artifact-relative: 

    # Artifact type. Allowed values: Integration, MessageMapping, ScriptCollection, ValueMapping
    # Optional
    # Default: Integration
    artifact-type:

    # Use a different MANIFEST.MF file instead of default META-INF/MANIFEST.MF
    # Optional
    file-manifest: 

    # Use a different parameters.prop file instead of default src/main/resources/parameters.prop
    # Optional
    file-param:

    # Comma-separated source-target ID pairs for converting script collection references during create/update
    # Optional
    script-collection-map:

    # Show debug logs
    # Optional
    # Default: false
    debug:

update package

- uses: engswee/flashpipe-action/update/package@v1
  with:
    # Host for tenant management node of Cloud Integration
    # Required
    tmn-host:

    # User ID for Basic Auth
    # Required (for Basic Auth)
    tmn-userid:

    # Password for Basic Auth
    # Required (for Basic Auth)
    tmn-password:

    # Host for OAuth token server
    # Required (for OAuth)
    oauth-host:

    # Client ID for using OAuth
    # Required (for OAuth)
    oauth-clientid:

    # Client Secret for using OAuth
    # Required (for OAuth)
    oauth-clientsecret:

    # Path for OAuth token server
    # Optional
    # Default: /oauth/token
    oauth-path:

    # Path to location of package file - relative to root of Git repository
    # Required
    package-file-relative:

    # Show debug logs
    # Optional
    # Default: false
    debug:

deploy

- uses: engswee/flashpipe-action/deploy@v1
  with:
    # Host for tenant management node of Cloud Integration
    # Required
    tmn-host:

    # User ID for Basic Auth
    # Required (for Basic Auth)
    tmn-userid:

    # Password for Basic Auth
    # Required (for Basic Auth)
    tmn-password:

    # Host for OAuth token server
    # Required (for OAuth)
    oauth-host:

    # Client ID for using OAuth
    # Required (for OAuth)
    oauth-clientid:

    # Client Secret for using OAuth
    # Required (for OAuth)
    oauth-clientsecret:

    # Path for OAuth token server
    # Optional
    # Default: /oauth/token
    oauth-path:

    # Comma separated list of artifact IDs
    # Required
    artifact-ids:

    # Artifact type. Allowed values: Integration, MessageMapping, ScriptCollection, ValueMapping
    # Optional
    # Default: Integration
    artifact-type:

    # Perform version comparison of design time against runtime before deployment
    # Optional
    # Default: true
    compare-versions: 

    # Delay (in seconds) between each check of artifact deployment status
    # Optional
    # Default: 30
    delay-length:

    # Max number of times to check for artifact deployment status
    # Optional
    # Default: 10
    max-check-limit:

    # Show debug logs
    # Optional
    # Default: false
    debug:

sync

This action includes an implicit git push when syncing from tenant to Git, so the workflow does not require an additional push step.

- uses: engswee/flashpipe-action/sync@v1
  with:
    # Host for tenant management node of Cloud Integration
    # Required
    tmn-host:

    # User ID for Basic Auth
    # Required (for Basic Auth)
    tmn-userid:

    # Password for Basic Auth
    # Required (for Basic Auth)
    tmn-password:

    # Host for OAuth token server
    # Required (for OAuth)
    oauth-host:

    # Client ID for using OAuth
    # Required (for OAuth)
    oauth-clientid:

    # Client Secret for using OAuth
    # Required (for OAuth)
    oauth-clientsecret:

    # Path for OAuth token server
    # Optional
    # Default: /oauth/token
    oauth-path:

    # ID of Integration Package
    # Required
    package-id:

    # Root directory of Git repository
    # Optional
    # Default: ${{ github.workspace }}
    dir-git-repo:

    # Directory containing contents of artifacts - relative to root directory of Git repository
    # Optional
    dir-artifacts-relative: 

    # Target of sync. Allowed values: git, tenant
    # Optional
    # Default: git
    target:

    # Name artifact directory by ID or Name. Allowed values: ID, NAME
    # Optional
    # Default: ID
    dir-naming-type:

    # Handling when artifact is in draft version. Allowed values: SKIP, ADD, ERROR
    # Optional
    # Default: SKIP
    draft-handling:

    # List of included artifact IDs
    # Optional
    ids-include:

    # List of excluded artifact IDs
    # Optional
    ids-exclude:

    # Message used in commit
    # Optional
    # Default: Sync repo from tenant
    git-commit-msg:

    # User used in commit
    # Optional
    # Default: github-actions[bot]
    git-commit-user:

    # Email used in commit
    # Optional
    # Default: 41898282+github-actions[bot]@users.noreply.github.com
    git-commit-email:

    # Comma-separated source-target ID pairs for converting script collection references during sync
    # Optional
    script-collection-map:

    # Sync details of Integration Package
    # Optional
    # Default: false
    sync-package-details:

    # Show debug logs
    # Optional
    # Default: false
    debug:

sync apim

This action includes an implicit git push when syncing from tenant to Git, so the workflow does not require an additional push step.

- uses: engswee/flashpipe-action/sync/apim@v1
  with:
    # Host for Developer Portal for API Management
    # Required
    tmn-host:

    # Host for OAuth token server
    # Required (for OAuth)
    oauth-host:

    # Client ID for using OAuth
    # Required (for OAuth)
    oauth-clientid:

    # Client Secret for using OAuth
    # Required (for OAuth)
    oauth-clientsecret:

    # Path for OAuth token server
    # Optional
    # Default: /oauth/token
    oauth-path:

    # Root directory of Git repository
    # Optional
    # Default: ${{ github.workspace }}
    dir-git-repo:

    # Directory containing contents of artifacts - relative to root directory of Git repository
    # Optional
    dir-artifacts-relative: 

    # Target of sync. Allowed values: git, tenant
    # Optional
    # Default: git
    target:

    # List of included artifact IDs
    # Optional
    ids-include:

    # List of excluded artifact IDs
    # Optional
    ids-exclude:

    # Message used in commit
    # Optional
    # Default: Sync repo from tenant
    git-commit-msg:

    # User used in commit
    # Optional
    # Default: github-actions[bot]
    git-commit-user:

    # Email used in commit
    # Optional
    # Default: 41898282+github-actions[bot]@users.noreply.github.com
    git-commit-email:

    # Show debug logs
    # Optional
    # Default: false
    debug:

snapshot

This action includes an implicit git push, so the workflow does not require an additional push step.

- uses: engswee/flashpipe-action/snapshot@v1
  with:
    # Host for tenant management node of Cloud Integration
    # Required
    tmn-host:

    # User ID for Basic Auth
    # Required (for Basic Auth)
    tmn-userid:

    # Password for Basic Auth
    # Required (for Basic Auth)
    tmn-password:

    # Host for OAuth token server
    # Required (for OAuth)
    oauth-host:

    # Client ID for using OAuth
    # Required (for OAuth)
    oauth-clientid:

    # Client Secret for using OAuth
    # Required (for OAuth)
    oauth-clientsecret:

    # Path for OAuth token server
    # Optional
    # Default: /oauth/token
    oauth-path:

    # Root directory of Git repository
    # Optional
    # Default: ${{ github.workspace }}
    dir-git-repo:

    # Directory containing contents of artifacts (grouped by packages) - relative to root directory of Git repository
    # Optional
    dir-artifacts-relative: 

    # Handling when artifact is in draft version. Allowed values: SKIP, ADD, ERROR
    # Optional
    # Default: SKIP
    draft-handling:

    # List of included package IDs
    # Optional
    ids-include:

    # List of excluded package IDs
    # Optional
    ids-exclude:

    # Message used in commit
    # Optional
    # Default: Tenant snapshot of <current_timestamp>
    git-commit-msg:

    # User used in commit
    # Optional
    # Default: github-actions[bot]
    git-commit-user:

    # Email used in commit
    # Optional
    # Default: 41898282+github-actions[bot]@users.noreply.github.com
    git-commit-email:

    # Sync details of Integration Package
    # Optional
    # Default: false
    sync-package-details:

    # Show debug logs
    # Optional
    # Default: false
    debug:

Examples

The following repository on GitHub provides examples of different use cases of of these actions.

https://github.com/engswee/flashpipe-demo

License

This project is licensed under the terms of Apache License, Version 2.0 - see the LICENSE file for details.