createJobStep

Back to index

Summary

Create a job step in an existing job.
  • You must specify the parent job step using either the jobStepId or parentPath arguments (COMMANDER_JOBSTEPID implicitly sets jobStepId). The parent job step status must not be completed.

  • External job steps do not participate in error handling processing. When you execute a job that includes a step with the --errorhandling abortProcedureNow argument, this argument is ignored if the step fails. The job then continues running the rest of the steps.

actionLabelText
Stringoptional
The JSON derived action label text.
actualParameters
Mapoptional
Actual parameters passed to an invoked subprocedure.
alwaysRun
Booleanoptional
True means this step will run even if preceding steps fail in a way that aborts the job.
assignees
Collectionoptional
A list of assignees who receive the notification.
broadcast
Booleanoptional
True means replicate this step to execute (in parallel) on each of the specified resources (that is, for a pool, run the step on each of the resources in the pool).
command
Stringoptional
Script to execute the functions of this step; passed to the step's shell for execution.
comment
Stringoptional
Script to execute the functions of this step; passed to the step's shell for execution.
condition
Stringoptional
A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a 0 or false is interpreted as FALSE. Any other result string is interpreted as TRUE.
credentialName
Stringoptional
The name of the credential to be used for impersonation.
credentials
Collectionoptional
The list of runtime credentials attached to the job step.
emailConfigName
Stringoptional
The name of email configuration.
errorHandling
Stringoptional
Specifies error handling for this step.
Possible values: "abortJob", "abortJobNow", "abortProcedure", "abortProcedureNow", "failProcedure", "ignore", "retryOnError"
exclusive
Booleanoptional
True means the resource acquired for this step will be retained for the exclusive use of this job. This means 2 things: first, no other job will be able to use that resource, regardless of its step limit, until this job completes; second, future steps for this job will use the resource in preference to other resources, if this resource meets the needs of the steps and its step limit is not exceeded.
exclusiveMode
Stringoptional
Determines the mode to use when the step acquires a resource. If set to none, then the default behavior for the step applies. If set to job, then the resource will be retained for the exclusive use of this job. If set to step, then the resource will be retained for the exclusive use of this step and procedure it may call. If set to call, then the resource will be retained for the exclusive use of all steps within the current procedure call.
Possible values: "none", "job", "step", "call"
external
Booleanoptional
True if the step is externally managed (no state machine).
instruction
Stringoptional
Instruction associated with the manual step.
jobStepId
UUIDoptional
The primary key of the job step.
jobStepName
Stringoptional
The name for the new step. If omitted, a default name will be generated.
logFileName
Stringoptional
Name of the log file for a step; specified relative to the root directory in the job's workspace.
notificationEnabled
Booleanoptional
True means this email notification is enabled, false otherwise.
notificationTemplate
Stringoptional
Email notification template for manual step.
parallel
Booleanoptional
True means this step and all adjacent steps with the flag set will run in parallel.
parentPath
Stringoptional
Path to the parent job step. If a parent step is not specified, the current job step is used.
postProcessor
Stringoptional
This command runs in parallel with the main command for the step; it analyzes the log for the step and collects diagnostic information.
precondition
Stringoptional
A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a 0 or false is interpreted as FALSE. Any other result string is interpreted as TRUE.
procedureName
Stringoptional
The name of the procedure that should own the job step. If not specified, myStep.procedure is used.
projectName
Stringoptional
The name of the project for procedureName.
releaseExclusive
Booleanoptional
True means the resource acquired for this step will be no longer be retained for the exclusive use of this job when this step completes.
releaseMode
Stringoptional
Determines the mode to use when the step releases its resource. If set to none, the default behavior applies. If set to release, then the resource will be available for use by any job. If set to releaseToJob, then the resource will be available for use by any step in this job.
Possible values: "none", "release", "releaseToJob"
resourceName
Stringoptional
Name for the resource; must be unique among all resources.
shell
Stringoptional
Name of the shell program that will execute the command and postprocessor for the step.
status
Stringoptional
The starting status for the step.
Possible values: "pending", "runnable", "scheduled", "running", "completed"
stepName
Stringoptional
The name of the procedure step that should own the job step. If not specified, myStep is used.
subprocedure
Stringoptional
Name of a procedure to invoke during this step.
subproject
Stringoptional
Name of the project containing the procedure to invoke during this step.
timeLimit
Stringoptional
Maximum amount of time the step can execute; abort if it exceeds this time.
timeLimitUnits
Stringoptional
Units for step time limit: seconds, minutes, or hours.
Possible values: "hours", "minutes", "seconds"
workingDirectory
Stringoptional
Working directory in which to execute the command for this step. A relative name is interpreted relative to the root directory for the job's workspace.
workspaceName
Stringoptional
The name of the workspace.

Usage

Perl

$cmdr->createJobStep( # optionals );

ectool

ectool createJobStep \ # optionals

Examples

Perl

$cmdr->createJobStep({parentPath => "/jobs/123", external => "1"}); $cmdr->createJobStep({jobStepId => "5da765dd-73f1-11e3-b67e-b0a420524153", external => "1"}); $cmdr->createJobStep({jobStepId => "5da765dd-73f1-11e3-b67e-b0a420524153", workspaceName => "workspaceA"}); $cmdr->createJobStep({jobStepId => "5da765dd-73f1-11e3-b67e-b0a420524153", workspaceName => "\$" . "[/myResource/workspaceName]"});
# Create a job step that calls a subprocedure and passes a parameter credential. # ‘coolProcedure’ is a procedure within the Default project with one parameter # credential named ‘sshCredentialParameter’. $cmdr->createJobStep( { projectName => 'Default', subprocedure => 'coolProcedure', actualParameter => [ { actualParameterName => 'sshCredentialParameter', value => 'sshCredentialParameter' } ], credential => [ { credentialName => 'sshCredentialParameter', userName => 'sshUser', password => 'super_secure_sshPassword' } ] } ); # Create two parallel job steps and send them to the CloudBees CD/RO server using the batch API. # Create the batch API object my $batch = $cmdr->newBatch('parallel'); # Create multiple requests my @reqIds = ( $batch->createJobStep( { parallel => '1', projectName => 'Default', subprocedure => 'coolProcedure', actualParameter => [ { actualParameterName => 'input', value => 'helloWorld' } ], } ), $batch->createJobStep( { parallel => '1', projectName => 'Default', subprocedure => 'coolProcedure', actualParameter => [ { actualParameterName => 'input', value => 'helloWorld' } ], } ), ); # Send off the requests $batch->submit();

ectool

ectool createJobStep --parentPath /jobs/123 --external 1 ectool createJobStep --jobStepId 5da765dd-73f1-11e3-b67e-b0a420524153 --external 1
ectool createJobStep --parallel 1 --projectName Default --subprocedure
coolProcedure --actualParameter input=helloWorld
ectool createJobStep --jobStepName "Echo-Middle" --workspaceName "workspaceA"