GitlabCI

Les bases

GitLab intègre une solution de CI/CD, permettant notamment d’effectuer des tests, builds et deploiements à chaque push correspondant à des critères spécifiés.

variables

dotenv

Variables prédéfinies

Secrets

Documentation variables CI/CD

GIT_STRATEGY

Templates

rules, only, except

workflow

before_script, after_script

when

allow_failure

services


Activer GitlabCI

Sur GitLab,

Installer un Runner local

Un runner est une machine à qui est envoyée les jobs Gitlab, et qui exécutera les scripts.
Pour installer un runner sur une VM, suivre les instructions gut Gitlab: Settings > CI/CD > show runner installation instructions.
Pour utiliser sa propre machine locale comme runner:

Installer gitlab-runner

Enregister le runner auprès de Gitlab

Lancer une pipeline


Tester SSH + registry

Configurer les variables CI/CD

Créer le fichier .gitlab-ci.yml

stages:
  - test-ssh
  - test-registry

ssh:
  stage: test-ssh
  image:
    name: alpine:latest
    pull_policy: if-not-present
  variables:
    GIT_STRATEGY: none
  script:
    - chmod og= $ID_RSA
    - apk update && apk add openssh-client
    - >
      ssh
      -i $ID_RSA
      -o StrictHostKeyChecking=no
      $SERVER_USER@$SERVER_IP '
      pwd &&
      whoami &&
      docker --version &&
      echo "OK"
      '

docker:
  stage: test-registry
  image:
    name: docker:latest
    pull_policy: if-not-present
  tags:
    - docker  # task picked up by runners allowed to run Docker in Docker (privileged)
  services:
    - docker:dind
  variables:
    GIT_STRATEGY: none
  script:
    - >
      docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY &&
      echo "OK" &&
      docker logout