---
title: workflow
description: Reference for the workflow config scope, which provides workflow execution options.
---
# `workflow`
The `workflow` scope provides workflow execution options.
##### `workflow.failOnIgnore`
When `true`, the pipeline will exit with a non-zero exit code if any failed tasks are ignored using the `ignore` [error strategy][process-error-strategy] (default: `false`).
##### `workflow.onComplete`
Specify a closure that will be invoked at the end of a workflow run (including failed runs). See [Workflow handlers][workflow-handlers] for more information.
##### `workflow.onError`
Specify a closure that will be invoked if a workflow run is terminated. See [Workflow handlers][workflow-handlers] for more information.
##### `workflow.output.contentType`
*Currently only supported for S3.*
Specify the media type, also known as [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/MIME_types), of published files (default: `false`). Can be a string (e.g. `'text/html'`), or `true` to infer the content type from the file extension.
##### `workflow.output.copyAttributes`
*Currently only supported for local and shared filesystems.*
Copy file attributes (such as the last modified timestamp) to the published file (default: `false`).
##### `workflow.output.enabled`
Enable or disable publishing (default: `true`).
##### `workflow.output.ignoreErrors`
When `true`, the workflow will not fail if a file can't be published for some reason (default: `false`).
##### `workflow.output.includeInputs`
When `true`, files that do not originate from the work directory, such as input files, are also published (default: `false`). Files that are not published are included in the index file with their original path.
##### `workflow.output.mode`
The file publishing method (default: `'symlink'`).
Available options:
###### `'copy'`
Copy each file into the output directory.
###### `'copyNoFollow'`
Copy each file into the output directory without following symlinks, i.e. only the link is copied.
###### `'link'`
Create a hard link in the output directory for each file.
###### `'move'`
Move each file into the output directory.
Should only be used for files which are not used by downstream processes in the workflow.
###### `'rellink'`
Create a relative symbolic link in the output directory for each file.
###### `'symlink'`
Create an absolute symbolic link in the output directory for each output file.
##### `workflow.output.overwrite`
Determines when to overwrite an existing file in the output directory (default: `'standard'`).
Available options:
###### `false`
Never overwrite existing files.
###### `true`
Always overwrite existing files.
###### `'deep'`
Overwrite existing files when the file content is different.
###### `'lenient'`
Overwrite existing files when the file size is different.
###### `'standard'`
Overwrite existing files when the file size or last modified timestamp is different.
##### `workflow.output.storageClass`
*Currently only supported for S3.*
Specify the storage class for published files.
##### `workflow.output.tags`
*Currently only supported for S3.*
Specify arbitrary tags for published files.
For example:
```groovy
workflow.output.tags = [FOO: 'hello', BAR: 'world']
```
[process-error-strategy]: ../process/directives/error-strategy
[workflow-handlers]: ../../notifications#workflow-handlers