# Getting started This is a project to get started on the gitlab CI for compiling and testing code. Important links: - Explanations of the YAML syntax of the file **.gitlab-ci.yml** [found here](https://docs.gitlab.com/ce/ci/yaml) - Installation of a local runner [found here](https://docs.gitlab.com/runner/install/) ## Tags: Tags only make sence if there are multiple runners. They allow to choose on which runner the job will be executed. **You don't need tags if you have only one runner!** The tags are used to select a specific runner. Note the following: 1. Each job is assigned to only **one** runner! 1. If job has no tag - one runner must be configured to run untagged jobs 1. Job has tags - **all** tags of a job **must match** a subset of the tags of **one** runner Each job can have one or multiple tags, here an example: ``` job_1: stage: build tags: - tag1_runnerA job_2: stage: build tags: - tag1_runnerB job_3: stage: build tags: - tag1_runnerA - tag2_runnerA ``` - runner A has the tags `tag1_runnerA` and `tag2_runnerA` ... and therefore runs `job_1` and `job_3` - runner B has the tags `tag1_runnerB` and `tag2_runnerB` ... and therefore runs only `job_2` - **Careful**, the tag list should contain only tags of **one** runner! - **Careful**, different runners cannot have the same tag!