Back to Website
Show / Hide Table of Contents

Flow

  • Last updated on October 1, 2025
  • •
  • 3 minutes to read

A pipeline is a linear sequence of steps. Every step represents a single task, which produces and may consume artifacts. The artifacts that tasks share with each other are temporary.

This sequence ends with the finalize task, which sets the artifacts that will be the pipeline result and removes the temporary artifacts.

Pipeline with artifact storage

Temporary artifacts

The artifacts that the task consumes are specified in inputArtifacts, and those that it produces and puts into artifact storage are outputArtifacts.

The first task of every pipeline does not consume artifacts, since it must get files from either the project, asset storage, or another site. The following tasks come first:

  • extract-project-design and extract-project-resource get the project designs or resources.
  • extract-assets gets an asset from asset storage.
  • download-files downloads files from the specified URL.

Temporary artifacts exist only until the end of the pipeline.

Final artifacts

The last task in a pipeline is finalize, in which we specify the resulting artifacts as finalArtifacts. They will be attached to the project. The remaining artifacts will be considered temporary and removed from the artifact storage.

Skipping tasks by condition

If you want a task to be performed depending on conditions, you can use the skipIf optional parameters. For example, you may add a trim option and control it over a custom field value. If it is set, add cut lines to print files. Otherwise, skip this task.

You can use the following optional parameters in the task's parameter dictionary to determine whether a task should be executed:

"skipIf": "<left> <operator> <right>"
"skipIfAny": ["<left> <operator> <right>", "<left> <operator> <right>", "<left> <operator> <right>"]
"skipIfAll": ["<left> <operator> <right>", "<left> <operator> <right>", "<left> <operator> <right>"]
"skipIfNot": "<left> <operator> <right>"
"skipIfNotAny": ["<left> <operator> <right>", "<left> <operator> <right>", "<left> <operator> <right>"]
"skipIfNotAll": ["<left> <operator> <right>", "<left> <operator> <right>", "<left> <operator> <right>"]

These parameters follow specific usage guidelines.

Usage guidelines for skipIf parameters

  • None of these parameters can appear more than once in the parameter dictionary.
  • Each task checks if these parameters are set before execution.
  • Malformatted conditions cause the task to terminate with an error. The correct formatted as "<left> <operator> <right>".
  • The supported comparison operators are = and !=.
  • If a condition contains multiple operators, it is considered malformed.
  • Both sides of the comparison are treated case-insensitively, and leading/trailing spaces are ignored.
  • Empty string values are valid for comparisons.
  • Standard argument interpolation rules apply (details here).

Evaluation rules

  • skipIf: Skips the task if the condition is true.
  • skipIfAny: Skips the task if any condition in the array is true.
  • skipIfAll: Skips the task if all conditions in the array are true.
  • skipIfNot: Skips the task if the condition is false.
  • skipIfNotAny: Skips the task if none of the conditions in the array are true.
  • skipIfNotAll: Skips the task if not all conditions in the array are true.

Comparison Logic

  • Operator =: True if the left part matches the right part exactly.
  • Operator !=: True if the left part differs from the right part.

Example: Conditional trim operation

Suppose you want to apply a trim operation to artifacts only if the trim custom field isn't set to None. You can use the skipIf parameter to skip the task if the flag is not set:

{
    "tasks": [
        ...
        {
            "description": "Apply cut lines",
            "type": "combine-with-cut-pattern",
            "inputArtifacts": [ ... ],
            "parameters": {
                "skipIf": "{{project.items.@.fields.trim}} = None",
                "cutPatternName": "cut-pattern-1.pdf",
                ...
            },
            "outputArtifacts": [ ... ]
        },
        ...
    ]
}

In this example:

  • If {{project.items.@.fields.trim}} is None, the task is skipped.
  • If {{project.items.@.fields.trim}} has a value other than None, the task executes and applies cut lines to the artifacts.

In the next article, you will learn more details about tasks.

Was this page helpful?
Thanks for your feedback!
Back to top Copyright © 2001–2025 Aurigma, Inc. All rights reserved.
Loading...
    Thank for your vote
    Your opinion is important to us. To provide details, send feedback.
    Send feedback