openskills.info
GitLab CI/CD logoCourse Preview

GitLab CI/CD

GitLab CI/CD is a continuous integration and delivery system built into GitLab. Pipelines are defined in a YAML file alongside the source code, running jobs on shared or self-managed runners to build, test, scan, and deploy every commit.

itDevOps and software delivery

GitLab CI/CD

GitLab CI/CD is the continuous integration and continuous delivery system built into GitLab itself. You describe your build, test, and deploy process as YAML in a single file, .gitlab-ci.yml, committed at the root of your repository. Push a commit, and GitLab reads that file, schedules the work it describes, and reports the result back on the commit and the merge request. There is no separate CI server to install: GitLab hosts the scheduling and the interface, and either GitLab or your own infrastructure supplies the machines that actually run the work.

The mental model

A pipeline is the top-level run: everything triggered for one commit, merge request, schedule, or manual click. A pipeline is composed of stages, which run in order, and jobs, which live inside a stage. Jobs in the same stage run in parallel; if any job in a stage fails, later stages are normally skipped and the pipeline stops early. A small pipeline might look like: a build stage with a compile job, a test stage with test1 and test2 jobs that only start once compile succeeds, and a deploy stage with a deploy-to-production job that only starts once both test jobs succeed.

build-job:
  stage: build
  script:
    - echo "Building..."

test-job1:
  stage: test
  script:
    - echo "Testing part 1"

Continue the course

This section is part of the paid course.

See pricing to subscribe, or log in if you already have access.

Where this skill leads

Relevant careers

See how this topic contributes to broader role-level skill maps.

Sources

  • https://docs.gitlab.com/ci/
  • https://docs.gitlab.com/ci/quick_start/
  • https://docs.gitlab.com/ci/pipelines/
  • https://docs.gitlab.com/ci/yaml/
  • https://docs.gitlab.com/ci/variables/
  • https://docs.gitlab.com/ci/runners/
  • https://docs.gitlab.com/ci/environments/
  • https://docs.gitlab.com/ci/components/
  • https://docs.gitlab.com/ci/secrets/
  • https://docs.gitlab.com/ci/pipelines/compute_minutes/