Automate CloudBees CD/RO Workflows with GitHub Actions

Written by: Logan Donley
4 min read

GitHub Actions for CloudBees Continuous Delivery / Release Orchestration (CD/RO) are now available in the GitHub Marketplace. CloudBees CD/RO has always embraced developer autonomy in tool choice while acting as an uber orchestrator to centralized visibility and management. Thus, we have created actions in the marketplace to make using GHA within CD/RO as seamless as possible. Users will require a CD/RO instance and a GitHub account to use these.

At the time of this blog, there are six published actions to communicate with CD/RO, spanning procedures, pipelines, releases, and application processes. This blog will detail each of these actions and conclude with a demo showcasing these in action.


Run CD/RO Procedure

Our first action is the Run CD/RO Procedure, where you can run a specified procedure and pass in parameters. 

steps:
    -  name: Run Procedure Action
        uses: cloudbees-github-actions/run-procedure@v1
        env:
             CDRO_URL: ${{ secrets.CDRO_URL }}
             CDRO_TOKEN: ${{ secrets.CDRO_TOKEN }}
        with:
             projectName: My project
             procedureName: My procedure
             actualParameter: |
                  param1: param1 value
                  param2: 1.0

Procedures are a way of creating reusable operations that can be run independently or as part of a pipeline. Using this action, you can now easily run these operations as part of your GitHub Actions Workflow. As you can see in the example above, all you need to do is specify which procedure you want to run and which project it lives in, and then optionally pass in parameters if required by that procedure.


Run CD/RO Process

The next action is the Run CD/RO Process, which allows you to run a target process on an application.

steps:
    -  name: Run Process
        uses: cloudbees-github-actions/run-process@v1
        env:
             CDRO_URL: ${{ secrets.CDRO_URL }}
             CDRO_TOKEN: ${{ secrets.CDRO_TOKEN }}
        with:
             projectName: GHA Project
             applicationName: GHA Application
             processName: GHA Process
             environmentName: QA
             actualParameter: |
                 Input1: xyz
                 Input2: abc
                 Input3: "line1\nline2"

A process defines how to do a particular operation for a given application. For example, you might have processes defined for how to install and uninstall an application. This allows you to define the process once and then use it against any target environment for your application. And using this GitHub Action, you can now kick off these processes as part of your workflow.

A use case for this is kicking off your application deployment after completing your CI tasks. This lets you separate concerns, doing the basic CI operations in your workflow and calling CD/RO to manage the CD operations.


Start CD/RO Release

Next up is the Start CD/RO Release action. With this action, you specify which release you want to target, which will kick off a new release run.

steps:
      - name: Start Release Action
         uses: cloudbees-github-actions/start-release@v1
         env:
             CDRO_URL: ${{ secrets.CDRO_URL }}
             CDRO_TOKEN: ${{ secrets.CDRO_TOKEN }}
        with:
             projectName: My project
             releaseName: My release
             pipelineParameter: |
                 param1: param1 value
                 param2: 1.0

Run CD/RO Pipeline

Similarly, for those non-release pipelines, we have the Run CD/RO Pipeline action.

steps:
      - name: Run Pipeline Action
         uses: cloudbees-github-actions/run-pipeline@v1
         env:
              CDRO_URL: ${{ secrets.CDRO_URL }}
              CDRO_TOKEN: ${{ secrets.CDRO_TOKEN }}
         with:
              projectName: My project
              pipelineName: My pipeline
              actualParameter: |
                  param1: param1 value
                  param2: 1.0

Create a CD/RO Release from a Template

Often, rather than just kicking off a release, you’ll want first to instantiate a new release and then run it. We have the Create a CD/RO Release from a Template action to do just that. 

steps:
     - name: Create release
        env:
             CDRO_URL: ${{ secrets.CDRO_URL }}
             CDRO_TOKEN: ${{ secrets.CDRO_TOKEN }}
        uses: cloudbees-github-actions/create-release-from-template@v1
        with:
             templateProjectName: Electric Cloud
             templateCatalogName: Releases
             templateName: Multi-stage CD Release
             actualParameter: |
                 releaseProjectName: GHA Test
                 releaseName: GHA Release from template
                 releaseDescription: desc
                 releaseStartDate: 2023-07-31
                 releaseEndDate: 2023-08-02

You can use this along with the Start CD/RO Release action to first create the release and then start it.


Execute CD/RO DSL

Sometimes, you must do more complex operations and want full access to the DSL. We have the Execute CD/RO DSL action to allow you to run any DSL against your CD/RO server.

steps:
     - name: RunEvalDSL Action
        uses: cloudbees-github-actions/eval-dsl@v1
        env:
             CDRO_URL: ${{ secrets.CDRO_URL }}
             CDRO_TOKEN: ${{ secrets.CDRO_TOKEN }}
   with:
             dsl-file: ./example-dsl.groovy
             dsl-args: |
                  projectName: My project
                  projectDescription: My project description
                 procedureName: My procedure
             dsl-actual-parameter: |
                 procedureInput1: 123
                 procedureInput2: abc

Interesting note: all previous actions are built on top of this Execute DSL action. You can easily do the same if you want to encapsulate your own standard operations into actions. You can look at the actions.yaml from one of our other actions to see how simple it is. 

Summary

In conclusion, CloudBees CD/RO has officially launched six new actions with GitHub Marketplace to help efficiently manage your release and deployment processes. 

We have created a demo environment with a step-by-step guide and a corresponding video for those seeking a more hands-on approach.  By following our guide, you'll be well on your way to streamlining your software development lifecycle. For additional information, visit our documentation page. Happy coding!

Stay tuned for our free trial experience of CloudBees CD/RO to test out these Actions!

Stay up to date

We'll never share your email address and you can opt out at any time, we promise.