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
  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: Similar to 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.

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

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 10. 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 11. 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.