Skip to content

bmc-compuware/ispw-sync

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Pipeline Sync

This mainframe action uses BMC AMI DevX Workbench Code Pipeline CLI docker container to push changesets into Code Pipeline. In order to use bmc-compuware/ispw-sync@v2 action, the GitHub self-hosted runner launched in the workflow must have the following capabilities:

  • support Docker (For example, self-hosted Linux runner with docker, self-hosted Windows with WSL2/Docker or ubuntu-latest)
  • access Code Pipeline host and port from the self-hosted runner

GitHub action version vs Docker container version:

Code Pipeline Sync Version CLI Version DockerHub
bmc-compuware/ispw-sync@v1 v20.6.1.gtk bmccompuware/ispwcli:v20.6.1.gtk
bmc-compuware/ispw-sync@v2 v20.7.1.gtk.ga bmccompuware/ispwcli:v20.7.gtk.ga

Table of Contents

Usage

  job_sync:
    runs-on: [self-hosted, ubuntu20]
    name: Code Pipeline Sync
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Synchronize
        uses: bmc-compuware/ispw-sync@v2
        id: sync
        with:
            host: 'host.example.com'
            port: 47623
            uid: 'foo'
            pass: ${{ secrets.ISPWPASS }}
            runtimeConfiguration: 'TPZP'
            stream: 'PLAY'
            application: 'PLAY'
            checkoutLevel: 'DEV2'
            gitUid: 'gitfoo'
            gitToken: ${{ secrets.GITHUB_TOKEN }}
            encryptionProtocol: 'None'
            codePage: 1047
            timeout: 0
            showEnv: true
        - name: Output automatic build parameters
            run: echo "automaticBuildJson=${{ steps.sync.outputs.automaticBuildJson }}"
        - name: Output changed programs
            run: echo "changedProgramsJson=${{ steps.sync.outputs.changedProgramsJson }}"

Inputs

Input name Required Description
host Required The Code Pipeline server host. For example, "cw09"
port Required The Code Pipeline server port. For example, 47623
encryptionProtocol Optional The encryption protocol for the connection (None, Auto, SSLv3, TLS, TLSv1, TLSv1.1, TLSv1.2). Default "None"
codePage Optional The code page for the connection. default, 1047
timeout Optional The timeout (in minutes) for the connection. Default, 0
uid Required The user name for the connection. For example, "foo"
pass Required The password for the connection. Please use secrets, such as, ${{ secrets.ISPWPASS }}
runtimeConfiguration Required The Code Pipeline server config. For example, "TPZP"
stream Required The Code Pipeline server stream. For example, "PLAY"
application Required The Code Pipeline server application. For example, "PLAY"
checkoutLevel Required The Code Pipeline server level. For example, "DEV1"
gitUid Required The user name for the GitHub repository. For example, "gitfoo"
gitToken Required GitHub token, PAT or password for the GitHub repository. Please use secrets, such as, ${{ secrets.GITHUB_TOKEN }}, ${{ secrets.GITPAT }} or ${{ secrets.GITPASS }}
containerCreation Optional The option to indicate how often to create a new Code Pipeline container (per-commit, per-branch). Default, "per-commit"
containerDescription Optional The custom description to be used for the Code Pipeline container.
showEnv Optional Show value of environment variables for debugging. Possible values are true or false

Outputs

Output name Output type Description
automaticBuildJson JSON The automatic build parameters JSON. For example, {"containerId":"PLAY004807","releaseId":" ","taskLevel":"DEV2","taskIds":["7E54341E21FF","7E54341E2449","7E54341E2610"]}
changedProgramsJson JSON The changed programs JSON. For example, { version: 1.0.0, programs: [ { version: 1.0.0, programName: TREXX10, programLanguage: CLST, isImpact: false, application: PLAY, stream: PLAY, level: DEV2 }, { version: 1.0.0, programName: TPROG10, programLanguage: COB, isImpact: false, application: PLAY, stream: PLAY, level: DEV2 }, { version: 1.0.0, programName: TPROG11, programLanguage: COB, isImpact: false, application: PLAY, stream: PLAY, level: DEV2 } ] }

Troubleshooting

This action emits debug logs to help troubleshoot failure. To see the debug logs, set the input showEnv: true.

Relationship between Code Pipeline Sync GitHub action and Docker

The Code Pipeline Sync action if triggered by GitHub workflow will pull Code Pipeline CLI Docker container and run that container to push the change sets to Code Pipeline.

Code Pipeline Sync explained

Limitation

This action is only available for Linux virtual environments or Windows with WSL2/Docker support.