Skip to main content

Shell

Execute shell commands and Bash scripts within a flow.


Plugin: shell Group: Core

Task TypeAlias
dev.bringup.plugin.core.shell.ShellPrimary
dev.bringup.plugin.core.shell.BashBash-specific
dev.bringup.plugin.script.shell.ScriptScript mode
dev.bringup.plugin.core.shell.CommandsCommands mode

Examples

Basic command execution

id: hello-world
namespace: examples
description: Run a simple shell command

tasks:
- id: greet
type: dev.bringup.plugin.core.shell.Shell
commands:
- echo "Hello from Bringup Labs!"
- date
- whoami

Properties


Common Task Properties

These properties are available on all task types:

PropertyTypeDefaultDescription
idstring-Required. Unique task identifier within the flow. Pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$
typestring-Required. The task type identifier.
descriptionstringnullHuman-readable description of what this task does.
disabledbooleanfalseSkip this task during execution.
timeoutstringnullTask-specific timeout (e.g., "60s", "5m", "1h"). Overrides flow-level timeout.
retryRetryConfignullRetry configuration. See Advanced Features.
allow_failurebooleanfalseContinue flow execution even if this task fails.
run_ifstringnullTemplate expression that must evaluate to truthy for the task to run.
worker_groupWorkerGroupnullAssign this task to a specific worker pool.

Outputs

Shell tasks do not produce structured outputs by default. To pass data between tasks:

  1. Write to a file and reference it in downstream tasks via outputFiles
  2. Use environment variables that persist within the same Jenkins stage

Notes

  • Template variables ({{ inputs.* }}, {{ variables.* }}) are automatically converted to shell environment variables during transpilation.
  • Commands are joined with newlines and executed as a single sh step in Jenkins.
  • For Bash-specific features (arrays, shopt, etc.), use the Bash task type variant.
  • Output files are archived using Jenkins' archiveArtifacts step.