Table des matières

GitLab

CI

Il suffit de placer un fichier .gitlab-ci.yml à la racine du projet correctement configuré.

Exemple de fichier pour les tests d'une application Django:

.gitlab-ci.yml
image: python:latest

cache:
  paths:
  - ~/.cache/pip/

before_script:
  - python -V # Print out python version for debugging
  - pip install -r requirements.txt -r requirements-dev.txt

test:
  script:
  - make flake
  - make coverage

Désactiver la CI pour un push

git push -o ci.skip

Installation

2 cœurs et au moins 4 Go de RAM

Pour 20 requêtes par secondes ou jusqu'à 1000 utilisateurs : 8 cœurs et 16 Go de RAM (https://docs.gitlab.com/administration/reference_architectures/1k_users/)

Installation de base

https://docs.gitlab.com/install/package/debian/?tab=Community+Edition

curl "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash
sudo EXTERNAL_URL="https://gitlab.homelab" apt install gitlab-ce

Configuration HTTPS

https://docs.gitlab.com/omnibus/settings/ssl/#use-an-acme-server-other-than-lets-encrypt

La configuration échoue car il n'a pas été possible de récupérer un certificat Let's Encrypt pour le TLD .homelab.

Ajouter dans /etc/gitlab/gitlab.rb :

letsencrypt['acme_staging_endpoint'] = 'https://ca.homelab/acme/acme/directory'
letsencrypt['acme_production_endpoint'] = 'https://ca.homelab/acme/acme/directory'
sudo cp /usr/local/share/ca-certificates/homelab.crt /etc/gitlab/trusted-certs
sudo rm -rf /etc/gitlab/ssl/
sudo gitlab-ctl reconfigure

Première connexion

Se rendre sur https://gitlab.homelab/ :

Runners

Installation

sudo apt install docker.io
 
 
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
 
# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner
 
# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
 
# Install and run as a service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

Enregistrer ensuite un runner d'instance.

Limiter les ressources des conteneurs Docker

[[runners]]
  [runners.docker]
    cpus = "1"
    memory = "400m"