GitLab
GitLab is a development platform that provides a Git repository manager providing wiki, issue-tracking and continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc.
To set up a CI Pipeline which will run your (test) jobs on a GitLab Runner, you need to create a .gitlab-ci.yml
file in the root of your repository. This file contains the configuration of your CI Pipeline.
A CI Pipeline is a set of jobs
that are executed in a specific order.
Stages
are used to group jobs
together and to define the order in which they are executed.
Example
An example for a CI Pipeline using a Dockerimage which runs Robot Framework jobs:
stages:
- smoke
- regression
image: marketsquare/robotframework-browser
run-smoke-tests:
stage: smoke
script:
- robot --outputdir reports tests/smoke
artifacts:
paths:
- reports
run-regression-tests:
stage: regression
script:
- robot --outputdir reports tests/regression
artifacts:
paths:
- reports
Stages
stages:
- smoke
- regression
The Pipeline has two stages: smoke
and regression
.
The smoke
stage will be executed first, followed by the regression
stage.
Each stage can contain multiple jobs which will be executed in parallel (within the same stage).
Jobs
run-smoke-tests:
stage: smoke
...
run-regression-tests:
stage: regression
...
The job run-smoke-tests
is part of the smoke
stage.
The job run-regression-tests
is part of the regression
stage.
Each job can contain multiple scripts
which will be executed in sequence.
The scripts are executed in the (Docker)image
specified in the configuration.
Image
image: marketsquare/robotframework-browser
The image is used to run the jobs in the CI Pipeline. It is possible to use a different image for each job. The image
specified at the top of the configuration is used as the default image for all jobs (unless a job-specific image is specified).
The default image used here is marketsquare/robotframework-browser
.
Scripts
script:
- robot --outputdir reports tests/smoke
The script
is a list of commands that will be executed in sequence for the job.
The script
specified here will run the Robot Framework tests in the tests/smoke
folder and will output the results in the reports
folder.
It is possible to use multiple script
commands in a job.
For example:
script:
- pip install -r requirements.txt
- mkdir reports
- robot --outputdir reports tests/smoke
Artifacts
artifacts:
paths:
- reports
The artifacts
section is used to specify the files and folders that should be stored as artifacts after the job has finished.
For example, you can store the test results (like the log.html
and report.html
files) as artifacts.
Here, the reports
folder is stored as an artifact. It contains all the test results and screenshots.
That's possible, because the --outputdir
in the robot
command was set to reports
.
robot --outputdir reports tests/smoke
Variables
variables:
ROBOT_OPTIONS: "--variable BROWSER:chrome"
run-smoke-tests:
stage: smoke
script:
- robot --outputdir reports $ROBOT_OPTIONS tests/smoke
artifacts:
paths:
- reports
It is possible to define variables in the configuration, either at the top of the file or in a job.
Also predefined GitLab variables or variables defined for your project settings can be used.
Especially for handling secrets, it is recommended to use CI Variables
in your project settings.
Check out the GitLab CI Variables documentation for more information.