Gitlab Misc.

Access Control, Gitlab CI

Posted by Rico's Nerd Cluster on August 10, 2018

Basic Navigation

  • create a new project in the personal space: The hamburger list menu -> your work

Access Control

If you are not sure who have the merge privileges,

  1. Go to your project.
  2. Navigate to: Project Information > Members
  3. Check Roles with write access:
    • Maintainer – Full access, including merge.
    • Developer – Can push and typically merge, unless restricted.

🧪 Basic Pipeline

  1. Build Strategy Options: there are two main ways to build Docker images in GitLab CI:
    • Option A: Docker-in-Docker (DinD)
      • Requires privileged: true.
      • Enables full Docker commands inside a container.
      • More self-contained but slower and more complex.
    • Option B: Test in default container and split Jobs
      • login_job – performs Docker login.
      • build_job – builds and tags the image.
      • push_job – pushes to registry.
        • Use cache: to persist login credentials between jobs.

          1
          2
          3
          4
          
            cache:
            key: docker-login
            paths:
                - ~/.docker/config.json
          
    • Automatically triggered by:
      • Pushes to main, feature/*, or merge requests.
      • Scheduled nightly CI jobs.
    • By default, these jobs are run in parallel
  2. Image Deployment
    • Download the image docker pull registry.gitlab.com/ricojia1:VERSION
    • After downloading:

      1
      
        docker load -i image.tar
      
    • Final deployment pushes image to GitLab Container Registry or Docker Hub.