# Getting started

This chapter describes how to get started with your first CI/CD workflow in Rig.

# Installation

Rig is made available as executable artifact in our Downloads section, and is currently available for Windows, Linux and macOS. Please find the correct artifact there and download it.

After downloading the archive, unpack (unzip) it. Rig does not need to be installed. It is a portable executable that is ready to use as-is.

Requirements

You need Java 11 (or newer) installed on your system in order to run Rig.

# The first project

When starting Rig, you are prompted to choose a workspace where your projects will be saved. On Linux and Windows, you can use the default location or change this to any other directory.

macOS

On macOS, you cannot use the default workspace location, which is inside the app folder.
Instead, it is advisable to choose a location inside your home directory.

After starting Rig, you should see an empty application windows with a standard Eclipse welcome screen. Create your first project by right clicking on the Project Explorer and choosing New RigProject.

Afterwards, create a CI/CD workflow by right-clicking your new project and choosing New Pipeline.

You should now see an empty canvas with a palette containing the different model elements on the right.

# The first workflow

Every workflow in Rig needs at least one so called build target. Rig uses the concept of targets that parameterize jobs in order to facilitate re-use of job definitions.

Drag a target element from the palette on the right onto the canvas and drop it. Note that Rig pre-populates the target with a unique name. You can change the name to something more sensible by clicking on the target, and then changing the value of the name field found in the *CINCO properties panel at the bottom of the screen.

Now it is time to create your first job. Drag a job element from the pallette onto the canvas, and connect the job with the target by hovering over the job, clicking on the arrow in the hover menu, and dragging the edge to the target. Drop the edge onto the target. You should see how the job connects to the target.

The job has also been given a randomized name, you can change it just like you did before with the target.

Since every job needs a script element, jobs come with a pre-filled echo "Hello, World!" script.

# Hello, Universe!

We will now create a simple workflow that parameterizes our job with values from two different targets.

Drag a new target onto the canvas and connect the existing job to the new target as well.

Afterwards, click the job and change the script to echo "Hello, $subject". This works the same as renaming does.

Now, rename the job to "Hello", and the targets to "World" and "Universe".

Now it is time to add parameters to our targets to fill the script argument with values. Right click each target and choose (+) String to add a string parameter to both targets. Give both parameters some values, e.g. "Universe" for the corresponding target, and "World" for the other target. Afterwards, drag an edge from the parameter to the script argument in the same way you connected the job to the targets. Do this for both parameters.

Note that when you connect an edge from a parameter (or variable, more on that later) to the script argument, a padlock sign appears. This happens with every property and tells you that the value is supplied from elsewhere and cannot be set locally via the CINCO properties panel.

By now, your workflow should (roughly) look like this:

Hello Universe Workflow

# Generating the configuration

Once you are finished modelling the workflow, you can generate the proper YAML file by choosing GraphModel > Generate Code from the main menu bar.

This will generate a file called generated/.gitlab-ci.yaml. In our case, the generated code should look like this:

# AUTO GENERATED BY RIG ON 2021-03-31 16:27:24
---
variables: {}
Hello@World:
  stage: "stage-0"
  variables:
    subject: "World!"
  script:
  - "echo \"Hello, $subject\""
Hello@Subject:
  stage: "stage-0"
  variables:
    subject: "Universe!"
  script:
  - "echo \"Hello, $subject\""
stages:
- "stage-0"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

If you commit this as .gitlab-ci.yml into any code repository hosted on an GitLab instance, you should immediately see a pipeline starting, running two independent jobs at the same time (in the same stage), each doing nothing more than writing their message to the console.

# Further reading

This concludes the quick start section. Further material is available.

By now, we have covered two way of supplying values for for properties:

  • local values
  • and target parameters.

Local values are the values you set directly in the CINCO Properties panel. We have done that with the name properties of jobs and targets and script properties of jobs. The following chapter Parameterization takes a closer look at the parameterization options Rig has to offer.

The Quick start so far has only covered jobs & targets, the first-class workflow elements. The chapter Workflow Elements takes a closer look at all workflow elements and how to use them in order to build real-world CI/CD workflows.

The Examples section covers multiple use-cases and gives ready-to-use examples in order to get you started on your own application.

Last Updated: 10/12/2021, 3:02:10 PM