Pipelines Extension Step Model- Shell Scripts

JFrog Pipelines Documentation

Products
JFrog Pipelines
Content Type
User Guide
ft:sourceType
Paligo

An extension step definition may include optional Bash shell or PowerShell scripts to be executed for the appropriate tags in step's the execution blog. These scripts define the operation of the step.

onExecute.sh/onExecute.ps1

When present in the step definition's repository directory, the onExecute.sh/onExecute.ps1 script is executed as the step's onExecute block. This should perform the primary function of the step.

The script must return a true value if the step succeeded, or false if it fails.

onExecute.sh Example

checkHealth() {
  local success=true
  local url=$(find_step_configuration_value "healthCheckUrl")
  {
    local statusCode=$(curl --silent --output /dev/stderr --write-out "%{http_code}" "$url")
  } || exitCode=$?
  if test $statusCode -ne 200; then
    export success=false
  fi

  $success
}

execute_command checkHealth
onSuccess.sh/onSuccess.ps1

When present in the step definition's repository directory, the onSuccess.sh/onSuccess.ps1 script is executed as part of the step's onSuccess block, in advance of user commands.

This script is executed when the onExecute script returns true.

onSuccess.sh Example

sendSuccessNotification() {
  local notifyOnSuccess=$(find_step_configuration_value "notifyOnSuccess")
  if [ -z "$notifyOnSuccess" ]; then
    notifyOnSuccess=false
  fi
  if [ "$notifyOnSuccess" == "true" ]; then
    echo "Health check succeeded"
  fi
}

execute_command sendSuccessNotification
onFailure.sh/onFailure.ps1

When present in the step definition's repository directory, the onFailure.sh/onFailure.ps1 script is executed as part of the step's onFailure block, in advance of user commands.

This script will be executed when the onExecute script returns false.

onFailure.sh Example

sendFailNotification() {
  local notifyOnFailure=$(find_step_configuration_value "notifyOnFailure")
  if [ -z "$notifyOnFailure" ]; then
    notifyOnFailure=false
  fi
  if [ "$notifyOnFailure" == "true" ]; then
    echo "Health check failed"
  fi
}

execute_command sendFailNotification
onComplete.sh/onComplete.ps1

When present in the step definition's repository directory, the onComplete.sh/onComplete.ps1 script is executed as part of the step's onComplete block, in advance of user commands.

For example:

onComplete.sh Example

echo "All done!"