You can configure your pipeline to perform certain actions by adding specific task types to it. Each task type integrates with another application to enable your pipeline to accomplish what you design it to deliver.

Whether you need to pull artifacts from a repository for deployment, run a remote script, or require approval from a team member for your pipeline to run, vRealize Automation Code Stream has the task type for you!

Before you use the task type in your pipeline, verify that the corresponding endpoint is available.

Table 1. Obtain an approval or set a decision point
Task type... What it does... Examples and details...
User Operation

Enables a required approval that controls when a pipeline runs and must stop for an approval.

See How do I run a pipeline and see results. and How do I manage user access and approvals in vRealize Automation Code Stream.

Condition

Adds a decision point, which determines whether the pipeline continues to run, or stops, based on condition expressions. When the condition is true, the pipeline runs successive tasks. When false, the pipeline stops.

See How do I use variable bindings in a condition task to run or stop a pipeline in vRealize Automation Code Stream.

Table 2. Automate continuous integration and deployment
Task type... What it does... Examples and details...
Cloud template

Deploys an automation cloud template from GitHub and provisions an application, and automates the continuous integration and continuous delivery (CICD) of that cloud template for your deployment.

See How do I automate the release of an application that I deploy from a YAML cloud template in vRealize Automation Code Stream.

When you select Create or Update in the cloud template task, then select Cloud Template and Version, the cloud template parameters appear. You can add these elements, which accommodate variable bindings, to the input text areas in the cloud template task:

  • Integer
  • Enumeration string
  • Boolean
  • Array variable

When you use variable binding in the input fields, be aware of these exceptions. For enumerations, you must select an enumeration value from a fixed set. For Boolean values, you must enter the value in the input text area.

The cloud template parameter appears in the cloud template task when a cloud template in vRealize Automation Cloud Assembly includes input variables. For example, if a cloud template has an input type of Integer, you can enter the integer directly or as a variable by using variable binding.

CI

Enables continuous integration of your code into your pipeline by pulling a Docker build image from a registry endpoint, and deploying it to a Kubernetes cluster.

See Planning a CICD native build in vRealize Automation Code Stream before using the smart pipeline template.

Custom

Integrates vRealize Automation Code Stream with your own build, test, and deploy tools.

See How do I integrate my own build, test, and deploy tools with vRealize Automation Code Stream.

Kubernetes

Automate the deployment of your software applications to Kubernetes clusters on AWS.

See How do I automate the release of an application in vRealize Automation Code Stream to a Kubernetes cluster.

Pipeline

Nests a pipeline in a primary pipeline. When a pipeline is nested, it behaves as a task in the primary pipeline.

On the Task tab of the primary pipeline, you can easily navigate to the nested pipeline by clicking the link to it. The nested pipeline opens in a new browser tab.

To find nested pipelines in Executions, enter nested in the search area.

Table 3. Integrate development, test, and deployment applications
Task type... What it does... Examples and details...
Bamboo

Interacts with a Bamboo continuous integration (CI) server, which continuously builds, tests, and integrates software in preparation for deployment, and triggers code builds when developers commit changes. It exposes the artifact locations that the Bamboo build produces so that the task can output the parameters for other tasks to use for build and deployment.

Connect to a Bamboo server endpoint and start a Bamboo build plan from your pipeline.

Jenkins

Triggers Jenkins jobs that build and test your source code, runs test cases, and can use custom scripts.

See How do I integrate vRealize Automation Code Stream with Jenkins.

TFS

Allows you to connect your pipeline to Team Foundation Server to manage and invoke build projects, including configured jobs that build and test your code.

vRealize Automation Code Stream supports Team Foundation Server 2013 and 2015.

vRO

Extends the capability of vRealize Automation Code Stream by running predefined or custom workflows in vRealize Orchestrator.

See How do I integrate vRealize Automation Code Stream with vRealize Orchestrator.

Table 4. Integrate other applications through an API
Task type... What it does... Examples and details...
REST

Integrates vRealize Automation Code Stream with other applications that use a REST API so that you can continuously develop and deliver software applications that interact with each other.

See How do I use a REST API to integrate vRealize Automation Code Stream with other applications.

Poll

Invokes a REST API and polls it until the pipeline task meets the exit criteria and completes.

See How do I use a REST API to integrate vRealize Automation Code Stream with other applications.

Table 5. Run remote and user-defined scripts
Task type... What it does... Examples and details...
PowerShell

Allows the PowerShell script task type to run script commands on a remote host. For example, a script can automate test tasks, and run administrative types of commands.

The script can be remote or user-defined. It can connect over HTTP or HTTPs, and can use TLS.

The service named winrm must be configured on the Windows host, and winrm must be configured for MaxShellsPerUser and MaxMemoryPerShellMB.

To run a PowerShell task, you must have an active session to the remote Windows host.

PowerShell Command Line Length

If you enter a base64 PowerShell command, be aware of that you must calculate the overall command length.

The vRealize Automation Code Stream pipeline encodes and wraps a base64 PowerShell command in another command, which increases the overall length of the command.

The maximum length allowed for a PowerShell winrm command is 8192 bytes. The command length limit is lower for the PowerShell task when it is encoded and wrapped. As a result, you must calculate the command length before you enter the PowerShell command.

The command length limit for the vRealize Automation Code Stream PowerShell task depends on the base64 encoded length of the original command. The command length is calculated as follows.

3 * (length of original command / 4)) - (numberOfPaddingCharacters) + 77 (Length of Write-output command)

The command length for vRealize Automation Code Stream must be less than the maximum limit of 8192.

When you configure MaxShellsPerUser and MaxMemoryPerShellMB:

  • The acceptable value for MaxShellsPerUser is 500 for 50 concurrent pipelines, with 5 PowerShell tasks for each pipeline. To set the value, run: winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • The acceptable memory value for MaxMemoryPerShellMB is 2048. To set the value, run: winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

The script writes the output to a response file that another pipeline can consume.

SSH

Allows the Bash shell script task type to run script commands on a remote host. For example, a script can automate test tasks, and run administrative types of commands.

The script can be remote or user-defined. It can connect over HTTP or HTTPs, and requires a private key or password.

The SSH service must be configured on the Linux host, and the SSHD configuration of MaxSessions must be set to 50.

The script can be remote or user-defined. For example, a script might resemble:

message="Hello World" echo $message

The script writes the output to a response file that another pipeline can consume.