Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a new return property to the run task #1052

Merged
merged 4 commits into from
Jan 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions dsl-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
+ [HTTP Response](#http-response)
+ [HTTP Request](#http-request)
+ [URI Template](#uri-template)
+ [Process Result](#process-result)

## Abstract

Expand Down Expand Up @@ -723,6 +724,7 @@ Provides the capability to execute external [containers](#container-process), [s
| run.shell | [`shell`](#shell-process) | `no` | The definition of the shell command to run.<br>*Required if `container`, `script` and `workflow` have not been set.* |
| run.workflow | [`workflow`](#workflow-process) | `no` | The definition of the workflow to run.<br>*Required if `container`, `script` and `shell` have not been set.* |
| await | `boolean` | `no` | Determines whether or not the process to run should be awaited for.<br>*Defaults to `true`.* |
| return | `string` | `no` | Configures the output of the process.<br>*Supported values are:*<br>*- `stdout`: Outputs the content of the process **STDOUT**.*<br>*- `stderr`: Outputs the content of the process **STDERR**.*<br>*- `code`: Outputs the process's **exit code**.*<br>*- `all`: Outputs the **exit code**, the **STDOUT** content and the **STDERR** content, wrapped into a new [processResult](#process-result) object.*<br>*- `none`: Does not output anything.*<br>*Defaults to `stdout`.* |

##### Examples

Expand Down Expand Up @@ -1888,3 +1890,54 @@ This has the following limitations compared to runtime expressions:
```yaml
uri: https://petstore.swagger.io/v2/pet/{petId}
```

### Process Result

Describes the result of a process.

#### Properties

| Name | Type | Required | Description|
|:--|:---:|:---:|:---|
| code | `integer` | `yes` | The process's exit code. |
| stdout | `string` | `yes` | The process's **STDOUT** output. |
| stderr | `string` | `yes` | The process's **STDERR** output. |

#### Examples

```yaml
document:
dsl: '1.0.0-alpha5'
namespace: test
name: run-example
version: '0.1.0'
do:
- runContainer:
run:
container:
image: fake-image
return: stderr
- runScript:
run:
script:
language: js
code: >
Some cool multiline script
return: code
- runShell:
run:
shell:
command: 'echo "Hello, ${ .user.name }"'
return: all
- runWorkflow:
run:
workflow:
namespace: another-one
name: do-stuff
version: '0.1.0'
input: {}
return: none
```
11 changes: 11 additions & 0 deletions examples/run-return-all.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
document:
dsl: '1.0.0-alpha5'
namespace: test
name: run-container
version: '0.1.0'
do:
- runContainer:
run:
container:
image: hello-world
return: all
11 changes: 11 additions & 0 deletions examples/run-return-code.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
document:
dsl: '1.0.0-alpha5'
namespace: test
name: run-container
version: '0.1.0'
do:
- runContainer:
run:
container:
image: hello-world
return: code
11 changes: 11 additions & 0 deletions examples/run-return-none.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
document:
dsl: '1.0.0-alpha5'
namespace: test
name: run-container
version: '0.1.0'
do:
- runContainer:
run:
container:
image: hello-world
return: none
11 changes: 11 additions & 0 deletions examples/run-return-stderr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
document:
dsl: '1.0.0-alpha5'
namespace: test
name: run-container
version: '0.1.0'
do:
- runContainer:
run:
container:
image: hello-world
return: stderr
24 changes: 24 additions & 0 deletions schema/workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,12 @@ $defs:
default: true
title: AwaitProcessCompletion
description: Whether to await the process completion before continuing.
return:
type: string
title: ProcessReturnType
description: Configures the output of the process.
enum: [ stdout, stderr, code, all, none ]
default: stdout
oneOf:
- title: RunContainer
description: Enables the execution of external processes encapsulated within a containerized environment.
Expand Down Expand Up @@ -1535,3 +1541,21 @@ $defs:
title: RuntimeExpression
description: A runtime expression.
pattern: "^\\s*\\$\\{.+\\}\\s*$"
processResult:
type: object
title: ProcessResult
description: The object returned by a run task when its return type has been set 'all'
properties:
code:
type: integer
title: ProcessExitCode
description: The process's exit code.
stdout:
type: string
title: ProcessStandardOutput
description: The content of the process's STDOUT
stderr:
type: string
title: ProcessStandardError
description: The content of the process's STDERR
required: [ code, stdout, stderr ]
Loading