This is one of several GitHub Actions provided on an "as-is" basis by CloudBees that enable users to write GitHub Action Workflows that send work to an external CloudBees CD/RO instance. This Action enables workflows to run an existing Application Process on a remote CloudBees CD/RO instance.
For teams utilizing GitHub Actions for build and continuous integration, the CloudBees CD/RO Actions provide a mechanism for releasing software in a secure, governed, and auditable manner with deep visibility, as is required in regulated industries, for example. Platform or shared services teams can build reusable content in the CloudBees CD/RO platform that conforms to company standards and removes the burden of release automation from the application teams.
CloudBees CD/RO is an enterprise "on-premise" product that automates software delivery processes, including production deployments and releases. To use utilize this GitHub Action, it is necessary to have access to a CloudBees CD/RO instance, in particular,
- A CloudBees CD/RO instance that GitHub Actions can access through REST calls (TCP port 443)
- A valid API token for the CloudBees CD/RO instance. A token can be generated from the Access Token link on the user profile page of the CloudBees CD/RO user interface; see Manage access tokens via the UI documentation for details. These values should be stored as GitHub Action secrets to be referenced securely in a GitHub Actions workflow.
The CloudBees CD/RO GitHub Actions are called from steps in a GitHub Actions workflow. The following workflow extract illustrates how to run an existing Application Process on a remote CloudBees CD/RO instance, including actual parameters.
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"
Name | Description | Required |
---|---|---|
projectName | Project name of the application | yes |
applicationName | Application name | yes |
processName | Process name | yes |
environmentName | Environment name | yes |
environmentProjectName | Project name of the environment | yes |
ignore-unverified-cert | Ignore unverified SSL certificate | no |
Name | Description |
---|---|
response | The JSON data structure emited by the API call. This data can be parsed to retrieve individual values from the response, for example, ${{ fromJson(steps.start-release.outputs.response).flowRuntime.flowRuntimeId }} where start-release is the name of a previous step and .flowRuntime.flowRuntimeId is the selector for the release pipeline runtime ID. |
The following GitHub secrets are needed to run the Action. These can be set in the Secrets and variable section of the workflow repository Settings tab.
Name | Description | Required |
---|---|---|
CDRO_URL | CloudBees CD/RO server URL, e.g., https://my-cdro.net or https://74.125.134.147 |
yes |
CDRO_TOKEN | CloudBees CD/RO API Access token | yes |
- Set up secrets in the repository settings for Actions. In the GitHub repository, select the Settings tab, Secrets, Variables, and Actions. Use the New Repository button to create the CDRO_URL and CDRO_TOKEN secrets.
- Create a DSL file in the root directory of your repository, for example,
simple-process-dsl.groovy
:
project "Default",{
environment "QA",{
environmentTier "AppServer",{
resource "AppServer_QA",
hostName: getResource(resourceName: "local").hostName,
hostType: "CONCURRENT"
}
}
application "GHA Application",{
applicationTier "App"
process "GHA Process",{
formalParameter "Input1"
formalParameter "Input2"
formalParameter "Input3", type: "textarea"
processStep "echo",
applicationTierName: "App",
actualParameter: [ commandToRun: 'echo'],
subprocedure: 'RunCommand',
subproject: '/plugins/EC-Core/project'
}
tierMap 'QA', {
applicationName = applicationName
environmentName = tierMapName
environmentProjectName = 'GHA Test'
tierMapping 'App-AppServer', {
applicationTierName = 'App'
environmentTierName = 'AppServer'
}
}
}
}
- Create a new workflow file in the
.github/workflows
directory, for example,simple-process.yml
:
name: Create and run process
on:
workflow_dispatch:
jobs:
create-and-run-process:
runs-on: ubuntu-latest
env:
CDRO_URL: ${{ secrets.CDRO_URL }}
CDRO_TOKEN: ${{ secrets.CDRO_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Create process
uses: cloudbees-github-actions/eval-dsl@v1
with:
dsl-file: simple-process-dsl.groovy
- name: Run process
uses: cloudbees-github-actions/run-process@v1
with:
projectName: Default
applicationName: GHA Application
processName: GHA Process
environmentName: QA
actualParameter: |
Input1: xyz
Input2: abc
Input3: "line1\nline2"
- Go to the GitHub
Actions
tab and run the workflowCreate and run process
The CloudBees CD/RO GitHub Actions Demonstration Repository illustrates how to implement a build and release workflow with the CloudBees CD/RO GitHub Actions.
The scripts and documentation in this project are released under the MIT License.
For more details about the CloudBees CD/RO product, view the online documentation.