−50% sur tous les plans · à partir de 2,48 €/mois · Blog·Documentation·Contact

Construire un pipeline CI/CD sur un VPS

GitLab Runner, GitHub Actions self-hosted, et pourquoi faire tourner votre propre CI économise argent et minutes.

Le CI auto-hébergé sur un VPS est un de ces investissements infra qui se rentabilise discrètement. Les runners GitHub Actions coûtent de l'argent réel à l'échelle (0,008 $/minute sur repos privés), et la même charge tourne plus vite sur un VPS correctement dimensionné.

Quand auto-héberger CI

Le CI auto-hébergé a du sens quand :

Approche 1 : Runners auto-hébergés GitHub Actions

Si vous êtes déjà sur GitHub, c'est l'option à friction la plus basse. Provisionnez un Cloud VPS Advanced (7,48 €/mois) ou Professional (14,48 €/mois). SSH :

sudo adduser --system --group --home /opt/github-runner github-runner
sudo mkdir -p /opt/github-runner
cd /opt/github-runner

sudo -u github-runner curl -o actions-runner-linux-x64-2.319.1.tar.gz -L   https://github.com/actions/runner/releases/download/v2.319.1/actions-runner-linux-x64-2.319.1.tar.gz
sudo -u github-runner tar xzf actions-runner-linux-x64-2.319.1.tar.gz

Obtenez un token d'enregistrement depuis GitHub, puis sur le VPS :

sudo -u github-runner ./config.sh --url https://github.com/votre-org/votre-repo --token YOUR_TOKEN
sudo ./svc.sh install github-runner
sudo ./svc.sh start

Considérations sécurité

Les runners auto-hébergés exécutent du code de tout contributeur dont la PR déclenche un workflow. Pour les repos publics, c'est un problème sérieux — restreignez les runners à des événements spécifiques.

Optimisations

Approche 2 : GitLab auto-hébergé + GitLab Runner

Si vous préférez ne pas dépendre de GitHub du tout, GitLab CE est open-source et auto-hébergeable.

Sizing : GitLab CE veut 4 Go RAM minimum, 8 Go recommandé. Plan pour Cloud VPS Professional (14,48 €/mois) ou plus.

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce
sudo cat /etc/gitlab/initial_root_password

Installez GitLab Runner séparément :

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
sudo apt install gitlab-runner
sudo gitlab-runner register

Un .gitlab-ci.yml typique

stages:
  - test
  - build
  - deploy

test:
  stage: test
  image: node:20
  cache:
    paths:
      - node_modules/
  script:
    - npm ci
    - npm test

build:
  stage: build
  image: docker:24
  services:
    - docker:24-dind
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
  only:
    - main

La comparaison de coûts

Pour une équipe à ~3000 minutes CI/mois :

Le break-even est ~1 800 minutes/mois. En dessous, GitHub-hosted convient. Au-dessus, auto-hébergé est moins cher.

Où le CI auto-hébergé pèche

  1. Scaling up : si vous avez besoin de 50 jobs concurrents, un VPS unique ne peut pas livrer
  2. Isolation des jobs : Docker-based aide, mais un job malicieux peut échapper
  3. Hétérogénéité OS : si vous testez aussi Windows ou macOS, retour aux runners hosted

Pour la plupart des charges CI internes, aucun de ces points n'est bloquant.


Articles liés

Essayez FranceVPS aujourd'hui

Garantie 14 jours. Pas de carte requise pour explorer. Infrastructure française souveraine.