--- 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