Pipelines

Overview of Pipeline settings, consisting of sequences of stages that define workflows.

From the Pipelines table (Figure 1), you can see the most important information about existing pipelines. From here you can also create a new pipeline, as well as update, or delete an existing one. Pipelines can be grouped under custom categories. A new category can be make by clicking on the plus button () next to the All tab.

Figure 1. Pipelines table

The pipelines table shows the following information:

  1. Status: Status of the last ran execution. When created, Job has a status Idle, until the first execution is started. All possible states for the execution can be found here.
  2. Name
  3. Executions: Number of executions made of this Pipeline
  4. Last finish: The time when the last execution of the Pipeline was completed
  5. Last duration: Duration of last execution

Additionally, you can start a Pipeline directly from this table.

Note: By clicking on the button, columns of the table can be customized - hidden or shown depending on the preference. Columns of the table can be reordered by using drag and drop in the table header. When positioning cursor in between two columns, cursor for column resizing will show and enable change of the column's width. All changes made to the table will be automatically preserved.

Pipeline details

Figure 2. Pipeline details

In the Details section, you can find:

  1. Configuration tab: Here are displayed configuration data.
  2. Pipeline parameters tab: Same as in job parameters, this tab is for managing parameters in order to easily change how a Pipeline should behave.
  3. Changes history tab tab: Contains Pipeline's history of changes.
  4. Executions tab: Contains a table of executions that are made by running this pipeline.
  5. Reports tab: Contains generated reports by running this pipeline.

You can also delete a pipeline by clicking on the Delete pipeline button.

Configuration tab

The tab displays configuration details for the selected Pipeline and allows for updates. Within the configuration tags can be marked as parametrizable. If a field is made parametrizable, the Pipeline will have that field available as a parameter when running a pipeline, within the run dialog. Additionally, any trigger connected to the pipeline will also have the parametrizable field available as a parameter. The default value of the parametrized field will be set to the value specified in the pipeline configuration, but the user can change it when running the Pipeline or Trigger.

A timeout can also be defined as a time limit that specifies how long a process or program can run before it is automatically interrupted.

Changes history tab

Changes history for the selected Pipeline is visible from this tab (Figure 3).

Figure 3. Pipeline changes history

All snapshots (events) will be exported to JSON format and automatically downloaded by clicking on the button. By selecting each line in the table, single snapshot will be shown enabling preview of the made changes and allowing user to perform comparison between the selected snapshot and and any chosen snapshot.

Figure 4. Selected snapshot preiew

Single snapshot (event) can be exported as JSON and downloaded by clicking on the button. Snapshots can be compared through UI or as JSON, with JSON option having more clearly displayed differences between the two snapshots using Monaco editor.

Figure 5. Snapshot comparisson through UI
Figure 6. Snapshot comparisson through JSON

Deleting pipeline

Clicking on the Delete pipeline opens a confirm dialog.

Figure 7. Pipeline delete

If the Executions box is checked, then all executions made by this Pipeline will be deleted (pipline execution and all nested job executions). When this option is clicked additional information in the dialog will be available.

Figure 8. Pipeline delete additional information in the dialog

If the Reports box is checked, then all Reports generated by this Pipeline will be deleted.

If the Artifacts box is checked, then all Artifacts generated by this Pipeline will be deleted.
Note: Pipeline can not be deleted if there is at least one unfinished execution of that Pipeline.

Create pipeline

A new pipeline can be added by clicking on the button. This opens the dialog window shown in Figure 9.
Figure 9. Add new pipeline dialog

From this dialog, several options for defining the Pipeline are available:

  1. Give a name which will be used to refer to it throughout the Typhoon Test Hub. The name must be unique.
  2. Write a description of the Pipeline.
  3. Choose if only one instance should be run.
  4. Select the groups of categories where this Pipeline should be displayed.
  5. Select one or more Tags which will be used to tag executions of the Pipeline. Tags field can be parametrizable. In that case tags will be available as parameter when running selected Pipeline or Trigger connected to the chosen Pipeline.
  6. Pipeline can be defined by writting a definition of pipeline in the Script editor tab or through the pipeline editor in the Graphical editor tab.

Before saving, the definition can be tested by clicking the button to ensure it is properly written.

Within the advanced section, general retention policy can be enabled for executions, by defining for how long executions should be preserved. Policy can be defined in the following way:
  • Preserve latest - where number of executions that would be preserved needs to be entered.
  • Preserve for - where period needs to be entered (number and unit, where unit can be days/weeks/months/years) for which executions needs to be preserved.
Figure 10. Retention policy definition
The global retention policy can also be parameterized, and parameterized policies can be valuable when dealing with jobs, pipelines, or triggers that have different configurations or parameters and are used frequently. With parameterized policies, we can better filter out the executions we want to preserve based on their characteristics. Execution filters are used in order to filter executions and to write parametrized policy.
Figure 11. Example of a parametrized retention policy definition
Once a parametrized retention policy is defined, it will be visible in the advanced section of the form.
Figure 12. Example of a parametrized retention policy definition
Note: In order to save a form, all input fields must be valid. Required fields are signed with *.

Start pipeline

When a pipeline has no parameters, like Pipeline1 in Figure 1, clicking on the Start button will cause a new execution to be made, which will be visible in the corresponding table on the Executions page. If the job has parameters, then the action button in the table will appear like this: .

Example for a pipeline with parameter and global variables

This is example of a pipeline definition. It is assumed that there are jobs named Job1 and Job2 . Also, it is needed to add parameters job1_first_parameter and job1_second_parameter to Job1, and also add parameter job2_parameter to Job2.
stage-1:
    label: first stage
    globals:
        - global_variable_1
        - global_variable_2: 22
    jobs:
        job-1:
            job: job1
            if: $job1_first_parameter != $job1_second_parameter && $pipeline_bool_parameter
            parameters:
                job1_first_parameter: $pipeline_text_parameter
                job1_second_parameter: $global_variable_2
        job-2:
            job: job2
            parameters:
                job2_parameter: 1
            if: $pipeline_text_parameter
        job-3:
            job: job2
            wait:
                - job-1
        job-4:
            job: job1
            wait:
                - job-2
            parameters:
                job1_first_parameter: $pipeline_text_parameter
                job1_second_parameter: asd
            if: $global_variable_1 == asd
        job-5:
            job: job2
            wait:
                - job-3
                - job-4
            use-artifacts:
                from: job-1
                collect: "*.zip"
Figure 13. New Pipeline branch parameter creation
Pipeline2 needs to have pipeline_text_parameter and pipeline_bool_parameter.

By clicking on the Play button, the Run Pipeline1 form will pop up.

Figure 14. New Pipeline branch parameter creation

From here, you can choose to use the default values or input a new values, and then start the job.