Skip to content

Code Pipeline Sync

Actions
Sync a changeset to the mainframe using Code Pipeline CLI docker container
v20.8.0.gtk.ga
Latest
Star (0)

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.

Code Pipeline Sync is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Sync a changeset to the mainframe using Code Pipeline CLI docker container
v20.8.0.gtk.ga
Latest

Code Pipeline Sync is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.